不管是测试环境还是正式环境,由于我们运行的服务往往会产生大量的日志文件,如果忘记清理,容易造成磁盘空间不足,因此最好是利用 linux 自带的定时任务功能去定时清理日志.
1.创建 shell脚本,赋权限
vim clean_tomcatlog.sh
chmod +x clean_tomcatlog.sh
2.编写脚本(可以对多个路径下的文件进行删除,只需将find一行复制改成相应要删除的路径即可)
find /data/jinhua/apache-tomcat-8.5.51/logs/gm-uums/ -mtime +0 -name "*.log.*" -exec rm -rf {} \;
find /data/jinhua/apache-tomcat-8.5.51/logs/gm-uums/ -mtime +0 -name "*.log" -exec rm -rf {} \;
shell脚本说明:
find:Linux查找命令,用户查找指定条件的文件
/opt/rh/log/:需要进行清理的目标目录
-mtime:+10 :数字代表天数
-name "*.log.*":目标文件的类型,带有log的所有文件
-exec:固定写法
rm -rf:强制删除包括目录在内的文件
{} \;:固定写法,一对大括号+空格+\+;
重点说说mtime参数:
-mtime n 按照文件的更改时间来找文件,n为整数。
n 表示文件更改时间距离为n天
-n 表示文件更改时间距离在n天以内
+n 表示文件更改时间距离在n天以前
例:
-mtime 0 表示文件修改时间距离当前为0天的文件,即距离当前时间不到1天(24小时)以内的文件。
-mtime 1 表示文件修改时间距离当前为1天的文件,即距离当前时间1天(24小时-48小时)的文件。
-mtime+1 表示文件修改时间为大于1天的文件,即距离当前时间2天(48小时)之外的文件
-mtime -1 表示文件修改时间为小于1天的文件,即距离当前时间1天(24小时)之内的文件
3.测试脚本
./clean_tomcatlog.sh
若文件可以被删除,就说明脚本没问题
4.定时器
查看定时器
crontab -l
编辑定时器
crontab -e
5.编辑定时任务(我设置的是每月1号0点执行)
0 0 1 * * /data/jinhua/shell/clean_tomcatlog.sh
分 时 日 月 周
-
M: 分钟(0-59)。每分钟用*或者 */1表示
-
H:小时(0-23)。(0表示0点)
-
D:天(1-31)。
-
m: 月(1-12)。
-
d: 一星期内的天(0~6,0为星期天)
6.重启crontab 服务
service crond restart
7.查询定时任务文章来源:https://www.toymoban.com/news/detail-581002.html
crontab -l
即可看到刚创建的定时任务,至此搞定!文章来源地址https://www.toymoban.com/news/detail-581002.html
到了这里,关于Linux中定时删除指定日期和天数的log日志文件的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!