¿Cómo eliminar automáticamente las carpetas /tmp en Linux? Script Bash de limpieza automática de registro de disco
Publicado: 2014-03-13
Aquí hay una secuencia de comandos simple que realizará la limpieza automática del registro del disco para cualquier entorno Linux. Solo tiene que proporcionar el CRUNCHIFY_TMP_DIRS correcto. Cuando un disco no tiene espacio libre, pueden ocurrir todo tipo de problemas.
Pero antes de eso, tengamos una comprensión básica de algunos comandos importantes.
Paso 1)
Compruebe el comando df -H.
Utilice el comando df
para mostrar información sobre el espacio total y el espacio disponible en un sistema de archivos.
El parámetro FileSystem especifica el nombre del dispositivo en el que reside el sistema de archivos, el directorio en el que está montado el sistema de archivos o el nombre de la ruta relativa de un sistema de archivos.
Si no especifica el parámetro FileSystem, el df command
muestra información para todos los sistemas de archivos montados actualmente. Si se especifica un archivo o directorio, el comando df muestra información sobre el sistema de archivos en el que reside.
Producción:
1 2 3 |
Filesystem Size Used Avail Capacity iused ifree % iused Mounted on / dev / disk0s2 499G 114G 385G 23 % 27868719 94059510 23 % / devfs 189k 189k 0B 100 % 640 0 100 % / dev |
Paso 2)
A continuación, filtre el sistema de archivos y descubra el porcentaje de espacio
1 |
df - H | grep - vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' |
Producción:
1 2 |
23 % / dev / disk0s2 100 % devfs |
Por lo tanto, a veces, mediante programación, es posible que desee limpiar archivos de carpetas específicas en caso de que se quede sin espacio. En ese caso, solo necesita ejecutar el siguiente script y se encargará de limpiar todos los archivos no utilizados según los criterios de filtro mencionados en el script. También envía un correo electrónico al usuario especificado en el script.
Otro debe leer:
- Cómo ejecutar comandos de Windows/Mac en JAVA y devolver el resultado del texto
Script completo de limpieza de disco de Linux:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
#!/bin/bash # Diskclean-Linux.sh - Remove unused files from /tmp directories # @author: Crunchify.com # ------------- Here are Default Configuration -------------------- # CRUNCHIFY_TMP_DIRS - List of directories to search # DEFAULT_FILE_AGE - # days ago (rounded up) that file was last accessed # DEFAULT_LINK_AGE - # days ago (rounded up) that symlink was last accessed # DEFAULT_SOCK_AGE - # days ago (rounded up) that socket was last accessed CRUNCHIFY_TMP_DIRS = "/tmp /var/tmp /usr/src/tmp /mnt/tmp" DEFAULT_FILE_AGE =+ 2 DEFAULT_LINK_AGE =+ 2 DEFAULT_SOCK_AGE =+ 2 # Make EMPTYFILES true to delete zero-length files EMPTYFILES = false #EMPTYFILES=true cd / tmp / log "cleantmp.sh[$] - Begin cleaning tmp directories" echo "" echo "delete any tmp files that are more than 2 days old" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth \ - type f - a - ctime $ DEFAULT_FILE_AGE \ - print - delete echo "" echo "delete any old tmp symlinks" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth \ - type l - a - ctime $ DEFAULT_LINK_AGE \ - print - delete echo "" if / usr / bin / $ EMPTYFILES ; then echo "delete any empty files" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth \ - type f - a - empty \ - print - delete fi echo "Delete any old Unix sockets" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth \ - type s - a - ctime $ DEFAULT_SOCK_AGE - a - size 0 \ - print - delete echo "" echo "delete any empty directories (other than lost+found)" / usr / bin / find $ CRUNCHIFY_TMP_DIRS \ - depth - mindepth 1 \ - type d - a - empty - a ! - name 'lost+found' \ - print - delete echo "" / usr / bin / logger "cleantmp.sh[$] - Done cleaning tmp directories" # send out an email about diskcleanup action mail - s "Disk cleanup has been performed successfully." you @ email .com echo "" echo "Diskcleanup Script Successfully Executed" exit 0 |
Espero que esto ayude. Si tiene alguna consulta sobre el script anterior, hágamelo saber. Cualquier sugerencia es bienvenida. El script funciona bajo Linux y Mac OS X.

¿Quiere ejecutar el script anterior every 3 days
? Simplemente use el programa cron a continuación
El tutorial detallado sobre Setting up CronJobs
está en camino. Por favor manténgase al tanto.
1 |
0 0 */ 3 * * / opt / crunchify / crunchify_script . sh |