遇到网站监控报表日志怎么定时自动清理?服务器上日志文件不断增加导致磁盘满,导致无法登陆到Linux机器。如何定时任务删除日志文件?如需使用在生产环境中,请在测试环境测试后再使用再生产环境内。
解决方案:
定时任务每日删除3天前的日志。
步骤:
1、手动执行命令删除日志
find /opt/web/log/ -mtime +3 -name "*.log.*" -exec rm -rf {} ;
命令解析:
将目录/opt/web/log/下3天前文件后缀为.log的文件删除
find:linux的查找命令,用户查找指定条件的文件;
/opt/web/log/:想要进行清理的任意目录;
-mtime:标准语句写法;
+3:查找3天前的文件,这里用数字代表天数;
"*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用,举一反三;
-exec:固定写法;
rm -rf:强制删除文件,包括目录;
{} ; :固定写法,一对大括号+空格++;
2、将脚本写入到文件,使用文件进行日志删除
创建文件:touch auto-del-3-days-ago-log.sh
开启权限:chmod -x auto-del-3-days-ago-log.sh
编辑文件:vim auto-del-3-days-ago-log.sh
写入脚本:find /opt/web/log/ -mtime +3 -name "*.log.*" -exec rm -rf {} ;
执行脚本清除日志:sh auto-del-3-days-ago-log.sh
3、添加定时任务,每天凌晨0点10分执行脚本自动清除日志
执行命令:crontab -e
写入命令:10 0 * * * /opt/web/auto-del-3-days-ago-log.sh >/dev/null 2>&1