前段时间上线了个WEB项目,日志系统使用log4j,每天会自动生成日志文件,单个文件虽然不是很大,但随着时间,日志占用的空间会越来越大,所以加上日志清除机制就很重要了,本次将使用crontab+shell脚本实现此功能.
一:创建shell脚本并赋予权限
touch /home/oracle/auto-del-20-days-ago-log.sh
chmod +x auto-del-20-days-ago-log.sh
二:使用vi命令编辑脚本(find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \;)
#!/bin/sh
find /home/oracle/logs/ -mtime +20 -name "*.*" -exec rm -rf {} \;
保存退出(:wq)。
三:启动定时任务crontab,定时启动该脚本
命令行输入crontab -e,点击i进入编辑模式,键入如下命令
10 11 * * * /home/oracle/auto-del-20-days-ago-log.sh >/dev/null 2>&1
保存退出(:wq)。
该命令会在每天11点10分,定时启动auto-del-20-days-ago-log.sh来删除/home/oracle/logs下创建时间超过20天的日志