Cum să ștergeți automat folderele /tmp din Linux? Scriptul Bash de curățare automată a jurnalului de disc
Publicat: 2014-03-13
Iată un script simplu care va efectua curățarea automată a jurnalului discului pentru orice mediu Linux. Trebuie doar să furnizați CRUNCHIFY_TMP_DIRS corect. Când un disc nu mai are spațiu liber, pot apărea tot felul de probleme.
Dar înainte de asta, să avem o înțelegere de bază a unor comenzi importante.
Pasul 1)
Verificați comanda df -H.
Utilizați comanda df
pentru a afișa informații despre spațiul total și spațiul disponibil pe un sistem de fișiere.
Parametrul FileSystem specifică numele dispozitivului pe care se află sistemul de fișiere, directorul pe care este montat sistemul de fișiere sau numele de cale relativă a unui sistem de fișiere.
Dacă nu specificați parametrul FileSystem, df command
afișează informații pentru toate sistemele de fișiere montate curent. Dacă este specificat un fișier sau un director, atunci comanda df afișează informații pentru sistemul de fișiere pe care se află.
Ieșire:
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 |
Pasul 2)
Apoi, filtrați sistemul de fișiere și aflați procentul de spațiu
1 |
df - H | grep - vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' |
Ieșire:
1 2 |
23 % / dev / disk0s2 100 % devfs |
Deci, uneori, în mod programatic, este posibil să doriți să curățați fișierele din anumite foldere în cazul în care ați rămas fără spațiu. În acest caz, trebuie doar să executați scriptul de mai jos și acesta se va ocupa de curățarea tuturor fișierelor neutilizate pe baza criteriilor de filtrare menționate în script. De asemenea, trimite un e-mail utilizatorului specificat în script.
Altul trebuie să citească:
- Cum să rulați comenzi Windows/Mac în JAVA și să returnați rezultatul textului
Scriptul complet Linux DiskCleanup:
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 |
Sper că acest lucru vă ajută. Dacă aveți întrebări despre scriptul de mai sus, anunțați-mă. Orice sugestii sunt binevenite. Scriptul funcționează sub Linux și Mac OS X.

Doriți să rulați deasupra scriptului every 3 days
? Folosiți doar programul cron de mai jos
Un tutorial detaliat despre Setting up CronJobs
este pe drum. Vă rugăm să rămâneți pe fază.
1 |
0 0 */ 3 * * / opt / crunchify / crunchify_script . sh |