如题所示,生产服务器每天会产生很大的日志文件,为了不使硬盘被日志文件塞满,因此需要定期清理日志文件。这时我们可以写一个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
|
注:
-
为了防止出现权限不够的情况,因此这里设置了一个root用户的定时任务
-
这句代码的意思是:在每周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,如需转载请自行联系原作者