最近服务器中日志文件满了,需要定时清理,现总结一下。
清理策略:压缩7天前的日志,清理30天前的日志。
1、crontab启停
/sbin/service crond start //启动服务
/sbin/service crond stop //关闭服务
/sbin/service crond restart //重启服务
/sbin/service crond reload //重新载入配置
查看crontab服务状态:
service crond status
手动启动crontab服务:
service crond start
2、编写定时作业shell脚本
本次的路径为/home/ap/user/bin/ClearLog.sh
find /home/ap/user/logs/data -mtime +7 -name "TRAN_*.log" ! -name "*.gz" -exec gzip -9 {} \; --压缩七天前的日志,注意压缩过的要过滤掉,不然会陷入无限压缩的死循环
find /home/ap/user/logs/data -mtime +30 -name "TRAN_*.log*" -exec rm {} \; --删除30天未改变的文件,注意log后面要加*,包括压缩的文件也要删除
3、将定时作业放到crontab中使它自动执行
将ClearLog.sh脚本放到crontab中,使它可以定时执行
输入命令crontab -e 编辑如下:
10 0 * * * . /home/ap/user/.bash_profile && sh /home/ap/user/bin/ClearLog.sh --每天0点10分执行ClearLog.sh脚本
4、查看是否配置成功
输入命令crontab -l,如果有则配置成功。