在 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的时候执行
虽然有一些小问题,不过上面那行指令帮大忙了,谢谢
谢谢指正, 大意打错了, 已经改正回来了. 🙂