Jak automatycznie usuwać foldery / tmp w systemie Linux? Skrypt Bash automatycznego czyszczenia dziennika dysku
Opublikowany: 2014-03-13
Oto prosty skrypt, który wykona automatyczne czyszczenie dziennika dysku dla dowolnego środowiska Linux. Musisz tylko podać poprawne CRUNCHIFY_TMP_DIRS . Gdy na dysku nie ma już wolnego miejsca, mogą wystąpić różnego rodzaju problemy.
Ale zanim to nastąpi, zapoznajmy się z podstawowymi informacjami na temat niektórych ważnych poleceń.
Krok 1)
Sprawdź polecenie df -H.
Użyj polecenia df
, aby wyświetlić informacje o całkowitym i dostępnym miejscu w systemie plików.
Parametr FileSystem określa nazwę urządzenia, na którym znajduje się system plików, katalog, w którym jest podłączony system plików, lub względną nazwę ścieżki systemu plików.
Jeśli nie określisz parametru FileSystem, df command
wyświetli informacje dla wszystkich aktualnie podłączonych systemów plików. Jeśli określony jest plik lub katalog, polecenie df wyświetla informacje dotyczące systemu plików, w którym się on znajduje.
Wyjście:
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 |
Krok 2)
Następnie odfiltruj system plików i sprawdź procent miejsca
1 |
df - H | grep - vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' |
Wyjście:
1 2 |
23 % / dev / disk0s2 100 % devfs |
Czasami więc programowo możesz chcieć wyczyścić pliki z określonych folderów na wypadek, gdyby zabrakło miejsca. W takim przypadku wystarczy wykonać poniższy skrypt, a on zajmie się wyczyszczeniem wszystkich nieużywanych plików na podstawie kryteriów filtrowania wymienionych w skrypcie. Wysyła również e-mail do użytkownika określonego w skrypcie.
Inny musi przeczytać:
- Jak uruchamiać polecenia Windows/Mac w JAVA i zwracać wynik tekstowy
Kompletny skrypt 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 |
Mam nadzieję że to pomoże. Jeśli masz jakieś pytania dotyczące powyższego skryptu, daj mi znać. Wszelkie sugestie są mile widziane. Skrypt działa pod Linuksem i Mac OS X.

Chcesz uruchamiać powyższy skrypt every 3 days
? Wystarczy użyć poniższego harmonogramu crona
Szczegółowy samouczek dotyczący Setting up CronJobs
jest już w drodze. Proszę, bądźcie czujni.
1 |
0 0 */ 3 * * / opt / crunchify / crunchify_script . sh |