Apakah mungkin untuk menghapus file di direktori / tmp setelah ukuran direktori tertentu terlampaui?

2

Menurut Bagaimana direktori / tmp dibersihkan? , /tmpdirektori dibersihkan menggunakan tmpreaper , yang digunakan cronuntuk menjadwalkan pembersihan pada interval waktu yang tetap. Namun, saya lebih suka menerapkan ukuran maksimum tertentu dari tmpdirektori. Apakah ini mungkin?

Kurt Peek
sumber

Jawaban:

1

Anda dapat menulis skrip kecil:

#
#      your maximum size of /tmp in kbytes
#
maxsize=1000
#
#      now get the actual size of /tmp in kbytes
#
tmpsize=$(du -ks /tmp|cut -f 1)
#
#      when maximum reached, clean up
#
if [ $tmpsize -ge $maxsize ]; then
    rm -r /tmp/*
fi

Ini harus dijalankan sebagai root, untuk membersihkan file yang dimiliki oleh pengguna lain (termasuk root) juga.

Jos
sumber
Bagaimana jika program saya baru saja membuat file sementara beberapa detik yang lalu dan akan membukanya untuk dibaca? Tidakkah seharusnya ada ujian waktu dalam naskah Anda?
WinEunuuchs2Unix
@ WinEunuuchs2Unix Anda hanya dapat menghapus file yang lebih lama dari x hari menggunakan find /tmp -mtime +x -delete. Lihat man findopsi lainnya. Tentu saja, jika ada risiko menghapus data berharga, Anda tidak boleh menjalankan skrip ini sama sekali.
Jos