在 Linux 下有時會有一些暫存檔或日誌檔需要定時刪除, 如果只要在特定目錄下, 刪除檔名包含有指定字串的舊檔案, 可以不用 Shell Script, 而直接在 crontab 用 find 指令完成 。
例如我想將 /var/www/html/tmp/ 目錄下, 將所有超過 7 日的檔案, 並以 “delname.log” 作為檔案開頭刪除, 可以在 crontab 加上以一行, 先開啟 crontab :
# crontab -e
加入以下內容:
|
1 |
0 5 * * * find /var/www/html/tmp/ -name "delname.log*" -mtime +7 -exec rm -rf {} \; |
儲存後離開編輯器便完成了。
以上加入的紀錄, 會在每天早上 5:00, 將 /var/www/html/tmp/ 目錄下, 所有以 “delname.log” 作為檔案開頭及超過 7 的檔案刪除。
上面的 “-mtime” 表示檔案修改時間, 除了 mtime 外, 還可以用 “atime” (存取時間) 及 “ctime” (建立時間) 作為條件。
hi,
* 5 * * * find /var/www/html/tmp/ -name “delname.log*” -mtime +7 -exec rm -rf {} \;
這行指的是到5點的時候每分鐘執行喔
0 5 * * * find /var/www/html/tmp/ -name “delname.log*” -mtime +7 -exec rm -rf {} \;
這個才是5:00的時候執行
雖然有一些小問題,不過上面那行指令幫大忙了,謝謝
謝謝指正, 大意打錯了, 已經改正回來了. 🙂