Saya ingin menjalankan tugas cron malam yang menghapus semua file dalam folder yang belum diakses dalam seminggu atau lebih. Apa cara paling efisien untuk melakukan ini di bash?
Saya ingin menjalankan tugas cron malam yang menghapus semua file dalam folder yang belum diakses dalam seminggu atau lebih. Apa cara paling efisien untuk melakukan ini di bash?
Jawaban:
Anda menginginkan find
alat itu .
find folder -depth -type f -atime +7 -delete
(Ini akan menghapus semua file ( hanya yang biasa , tidak ada pipa, perangkat khusus, direktori, link simbolik) di folder tertentu dan semua subdirektori (rekursif) di mana yang terakhir waktu akses adalah lebih lama dari 7 hari yang lalu.)
-type f
di sana untuk memastikan hanya menghapus file, bukan seluruh direktori.
Anda mungkin ingin memeriksa tmpwatch
yang dapat dimasukkan ke dalam pekerjaan cron. Tidak perlu menggulung sendiri find
. Di RHEL ada di tmpwatch
RPM.
find
.
find
dapat memfilter berdasarkan atime. "Kebenaran" dari atime tergantung pada konfigurasi (lihatnoatime
), paling tidak.