Linux中定时删除指定天数的日志文件

背景简介

在实际项目的正式环境中,由于服务器服务运行会产生大量日志文件,但是内存有限,所以就需要人工定时清理文件,但时常会忘记。因此启用linux系统定时任务去执行日志清理功能。

创建shell脚本及执行权限

touch   clean.sh //创建脚本文件 
cd /**/** //进入该目录
chmod +x clean.sh //修改执行权限

编辑shell脚本

vi clean.sh //编辑执行文件

执行编辑之后,将下段代码复制进去,然后将路径改为自己要删除的文件路径

#!/bin/sh
find /opt/rh/log/ -mtime +0 -name "*.*.log" -exec rm -rf  {}  \ ;

shell脚本说明:

find:Linux查找命令,用户查找指定条件的文件

/opt/rh/log/:需要进行清理的目标目录

-mtime:标准语句写法

+10 :数字代表天数

-name "*.log.*":目标文件的类型,带有log的所有文件

-exec:固定写法

rm -rf:强制删除包括目录在内的文件

{} \;:固定写法,一对大括号+空格+\+;

也可以对多个路径下的文件进行删除,只需将find一行复制改成相应要删除的路径即可

 编写完之后,可以到脚本的当前目录下执行脚本来测试一下

./clean.sh //若在当前目录,则直接执行
./opt/rh/clean.sh //不在当前目录下,执行时加上路径即可

若文件可以被删除,就说明脚本没问题

那么接下来就弄定时任务

首先先说两个命令

crontab -l,查看定时任务
crontab -e,编辑定时任务

使用 crontab -e,编辑定时任务,操作方式和vi编辑器一样

将刚刚的脚本路径添加到编辑器中,并设置时间

0  0  1  *  * /home/linux/fingerlink/tomcat/apache-tomcat-7.0.75/logs/clean.sh
分 时 日 月 周      命令

M: 分钟(0-59)。每分钟用*或者 */1表示
H:小时(0-23)。(0表示0点)
D:天(1-31)。
m: 月(1-12)。
d: 一星期内的天(0~6,0为星期天)。

我设置的是每月1号0点执行。

然后保存退出,然后
使用指令重启crontab 服务,让配置生效

service crond restart

生效后,可以执行crontab -l命令,查看定时任务,到这里Linux定时删除日志就创建完成了。

  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值