前言
web在部署到linux环境后,一般都是把日志等级设置加高。只输出Error信息或者直接关闭Log。但是某些系统需要搜集容器的access日志来做数据分析。
如果本地存储的话,日子久了,日志就越来越大。占用大量磁盘资源,直接影响到系统的正常运行。所以,这种情况下,对日志做定期清理,是成本最低的方法了。
过程
删除文件脚本
1 | find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \; |
例如:删除3天前 /opt/logs下 search开头的日志。
1 | find /opt/logs/ -mtime +3 -name "search*.log" exec rm -rf {} \; |
说明:
find:linux的查找命令,用户查找指定条件的文件
/opt/logs/:想要进行清理的任意目录;
-mtime:标准语句写法;
+3:查找30天前的文件,这里用数字代表天数;
“search*.log”:支持范式匹配
-exec:执行
rm -rf:强制删除命令
{} ; :固定写法,一对大括号+空格++;
计划任务
将以上命令放置到可执行shell脚本中再通过cron调度执行。
创建shell:
1 | touch ~/bin/auto-del-30-days-ago-log.sh |
编辑shell脚本
1 | vim auto-del-3-days-ago-log.sh |
内容如下:
1 | #!/bin/sh |
添加计划调度:
执行:
1 | 10 0 * * * ~/auto-del-3-days-ago-log.sh >/dev/null 2>&1 |
设置是每天凌晨0点10分执行auto-del-3-days-ago-log.sh文件进行数据清理任务了。
总结
THE END.