Bagaimana cara otomatis menghapus folder /tmp di Linux? Skrip Bash Pembersihan Log Disk Otomatis
Diterbitkan: 2014-03-13
Berikut adalah skrip sederhana yang akan melakukan Pembersihan Log Disk Otomatis untuk Lingkungan Linux apa pun. Anda hanya perlu memberikan CRUNCHIFY_TMP_DIRS yang benar. Ketika disk tidak memiliki ruang kosong yang tersisa, semua jenis masalah dapat terjadi.
Tetapi sebelum itu mari kita memiliki pemahaman dasar tentang beberapa perintah penting.
Langkah 1)
Periksa perintah df -H.
Gunakan perintah df
untuk menampilkan informasi tentang total ruang dan ruang yang tersedia pada sistem file.
Parameter FileSystem menentukan nama perangkat tempat sistem file berada, direktori tempat sistem file dipasang, atau nama jalur relatif dari sistem file.
Jika Anda tidak menentukan parameter FileSystem, df command
menampilkan informasi untuk semua sistem file yang saat ini dipasang. Jika file atau direktori ditentukan, maka perintah df menampilkan informasi untuk sistem file tempat file atau direktori itu berada.
Keluaran:
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 |
Langkah 2)
Selanjutnya filter sistem file dan cari tahu persentase ruang
1 |
df - H | grep - vE '^Filesystem|tmpfs|cdrom' | awk '{ print $5 " " $1 }' |
Keluaran:
1 2 |
23 % / dev / disk0s2 100 % devfs |
Jadi, terkadang secara terprogram Anda mungkin ingin membersihkan file dari folder tertentu jika Anda kehabisan ruang. Dalam hal ini, Anda hanya perlu menjalankan skrip di bawah ini dan skrip ini akan membersihkan semua file yang tidak digunakan berdasarkan kriteria filter yang disebutkan dalam skrip. Itu juga mengirimkan email ke pengguna yang ditentukan dalam skrip.
Yang lain harus membaca:
- Cara Menjalankan Perintah Windows/Mac di JAVA dan Mengembalikan Hasil Teks
Skrip DiskCleanup Linux Lengkap:
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 |
Semoga ini membantu. Jika Anda memiliki pertanyaan tentang skrip di atas, beri tahu saya. Setiap saran dipersilahkan. Script bekerja di Linux dan Mac OS X.

Ingin menjalankan skrip di atas every 3 days
? Cukup gunakan jadwal cron di bawah ini
Tutorial mendetail tentang Setting up CronJobs
sedang dalam proses. Harap tetap disini.
1 |
0 0 */ 3 * * / opt / crunchify / crunchify_script . sh |