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?
shell-script
files
cron
date
bloudermilk
sumber
sumber
find
dapat memfilter berdasarkan atime. "Kebenaran" dari atime tergantung pada konfigurasi (lihatnoatime
), paling tidak.Jawaban:
Anda menginginkan
find
alat itu .(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.)
sumber
-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 sendirifind
. Di RHEL ada ditmpwatch
RPM.sumber
find
.