Linux中使用定时任务每周定时清理45天以前日志

本文介绍如何通过Shell脚本自动清理服务器上超过45天的日志文件,并设置定时任务每周执行一次清理操作,避免硬盘空间被大量日志占用。

如题所示,生产服务器每天会产生很大的日志文件,为了不使硬盘被日志文件塞满,因此需要定期清理日志文件。这时我们可以写一个shell脚本用来清理某个路径下45天以前的日志,然后再设置一个定时任务每周定时执行这个脚本即可

(1)清理某个路径下的日志脚本delOldLogs.sh:

1
[root@prx01 cleanlog] # vim /usr/local/cleanlog/delOldLogs.sh
1
2
3
4
#!/bin/sh
 
#删除输入路径下的修改时间在45天以前的日志文件
find  $1 -mtime +45 -name  "*log*"  - exec  rm  -f {} \;

这段代码不难理解,就是清理参数1所在的路径下的修改时间在45天以前的日志文件

(2)指定清理哪些路径的日志的脚本del_all_OldLogs.sh:

1
[root@prx01 cleanlog] # vim /usr/local/cleanlog/del_all_OldLogs.sh
1
2
3
4
5
#!/bin/bash
 
/usr/local/cleanlog/delOldLogs .sh  "/home/usr/ewp/logs"
/usr/local/cleanlog/delOldLogs .sh  "/home/usr/h5/logs"
/usr/local/cleanlog/delOldLogs .sh  "/home/usr/Payment/logs"

(3)给脚本添加执行权限:

1
[root@prx01 cleanlog] # chmod a+x /usr/local/cleanlog/del*.sh

(4)添加定时任务:

1
[root@prx01  cron ] # vim /var/spool/cron/root

添加以下内容:

1
10 0 * * 6 /usr/local/cleanlog/del_all_OldLogs.sh

注:

  1. 为了防止出现权限不够的情况,因此这里设置了一个root用户的定时任务

  2. 这句代码的意思是:在每周6的0:10执行/usr/local/cleanlog/del_all_OldLogs.sh 这个脚本

如果对Linux中的定时任务不太熟悉的话,建议可以参考下我写的这篇文章:http://www.zifangsky.cn/591.html

(5)查看定时任务:

1
[root@app05 logs] # crontab -l



本文转自 pangfc 51CTO博客,原文链接:http://blog.51cto.com/983836259/1853889,如需转载请自行联系原作者
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值