Linux定时清理日志
原创
©著作权归作者所有:来自51CTO博客作者wx639dacd401cd5的原创作品,请联系作者获取转载授权,否则将追究法律责任
Linux定时清理日志
- shell脚本编写
- 设置定时器,定期执行脚本
shell脚本编写
1.先创建出一个一个文件夹用于保存.sh文件
2.创建.sh文件
vim filename,如果文件存在则打开,如果文件不存在则新建。
3.编写删除日志脚本
#! /bin/bash
#find 对应目录 -mtime +天数 -name “文件名” -exec rm -rf {} ;
#find:linux的查找命令,用户查找指定条件的文件;
#/home/admin/logs/xxljob/jobHandler:想要进行清理的任意目录;
#-mtime:标准语句写法;
#+2:查找3天前的文件,这里用数字代表天数;
#"*.log":希望查找的数据类型,"*.jpg"表示查找扩展名为jpg的所有文件,"*"表示查找所有文件,这个可以灵活运用
# 例如find /home/tomcat/apache-tomcat-8.0.52/logs -mtime +2 -name "*.log.*" -exec rm -rf {} \;表示删除这个目录下两天前所有文件名包含.log.的文件
#-exec:固定写法;表示执行命令
#rm -rf:强制删除文件,包括目录;
# {} \; :固定写法,{}中表示find /home/admin/logs/xxljob/jobHandlder查找到的所有文件一对大括号+空格+\+
find /home/admin/logs/xxljob/jobHandler -mtime +2 -exec rm -rf {} \;
4.在脚本所在的目录给脚本增加可执行权限
chmod +x clear_xxljob_logs.sh
设置定时器,定期执行脚本
创建好要执行的脚本之后,需要启动linux的crontab来定时执行这个脚本。
1.编辑当前用户的定时任务
将shell文件添加到系统定时任务中38 17 * * * /home/admin/crontab-file/clear_xxljob_logs.sh
如图:
2.corn表达式问题,采用5位corn表达式
# 文件格式說明
# ——分鐘(0 - 59)
# | ——小時(0 - 23)
# | | ——日(1 - 31)
# | | | ——月(1 - 12)
# | | | | ——星期(0 - 7,星期日=0或7)
# | | | | |
# * * * * * 被執行的命令
corntab -l 参看当前用户的定时任务,出现以下目录说明定时任务已经添加成功
38 17 * * * /home/admin/crontab-file/clear_xxljob_logs.sh
corntab -r 删除当前用户的定时任务