Linux
刪除超過 30 天的文件的腳本
Shell 腳本不應刪除* root dir* 下的任何文件。我的*路徑將類似於 /export/home/ftp/ …
我做了一些研究,找到了使用 find 和 exec 命令從特定路徑查找和刪除超過 30 天的文件的方法。
*查找/export/home/ftp/ -type f -mtime +30 -exec rm -f {} ;
但根據要求,我只想從該目錄中刪除 console.log 和 server.log 並排除剩餘的文件。
請幫我解決這個問題。
假設您確實需要使用
find
才能通過子目錄進行遞歸:find /export/home/ftp \( -name console.log -or -name server.log \) -mtime +30 -exec rm -f {} +
如果您只需要每月刪除舊的 server.log 和 console.log,您也可以使用
logrotate
很可能已經在 RHEL 下執行的那個。像這樣的配置片段將適用於/etc/logrotate.d/*.conf
配置文件位於系統上的任何位置。# rotate server.log and console.log every month # delete, not compress, old file /export/home/ftp/server.log /export/home/ftp/console.log { monthly rotate 0 }
如上所述,自定義的每月 cron 也可以很好地工作。實際上,由於 logrotate 是從 cron 執行的,因此您可以將其視為某種 cron 擴展。HTH。