Linux定时删除n天前日志分析

无情 阅读:178 2020-04-20 17:39:25 评论:0
1、实例命令:
 
  
# find 对应目录 -mtime +天数 -name "文件名" -exec rm -rf {} \; 
find /data/tomcat/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;
说明:
将/data/tomcat/logs/ 目录下所有30天前带”.log”的文件删除。

2、计划任务(升级):
若嫌每次手动执行语句太麻烦,可以将这小语句写到一个可执行shell脚本文件中,再设置cron调度执行,那就可以让系统自动去清理相关文件。
2.1 创建shell:
新建一个可执行文件 auto-del-30-days-ago-log.sh 并分配可运行权限
touch /opt/auto-del-30-days-ago-log.sh 
chmod +x auto-del-30-days-ago-log.sh

2.2 编辑shell脚本(auto-del-30-days-ago-log.sh):

1、打开编辑器
vi auto-del-30-days-ago-log.sh

2、输入以下内容

#!/bin/sh 
find /data/tomcat/logs/ -mtime +30 -name "*.log" -exec rm -rf {} \;

3、保存退出(:wq!)。

2.3 计划任务:
1、将auto-del-30-days-ago-log.sh执行脚本加入到系统计划任务
#crontab -e

2、设置是每天凌晨0点10分执行auto-del-30-days-ago-log.sh文件进行数据清理:

10 0 * * * /opt/auto-del-30-days-ago-log.sh >/dev/null 2>&1

2.4 启动任务:重启crond:

service crond restart 
#centos7 请执行 systemctl restart crond

 

2.5 瞄一眼是否已经开始任务:
crontab -l
PS: 如果需要查看定时任务执行日志:
cat /var/log/cron
完成以上三步,妈妈再也不用担心我的硬盘空间满了,不用手动清理日志文件了
 
标签:linux
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

发表评论
搜索
排行榜
关注我们

扫一扫关注我们,了解最新精彩内容