linux是一个很能自动产生文件的系统,日志、邮件、备份等。虽然现在硬盘廉价,我们可以有很多硬盘空间供这些文件浪费,让系统定时清理一些不需要的文件很有一种爽快的事情。有需要的朋友看一下。
本文主要介绍的是Linux使用定时任务每周定时清理45天以前日志。服务器每天会产生很大的日志文件,为了不使硬盘被日志文件塞满,因此需要定期清理日志文件。这时我们可以写一个shell脚本用来清理某个路径下45天以前的日志,然后再设置一个定时任务每周定时执行这个脚本即可。
①清理某个路径下的日志脚本delOldLogs.sh:
1
2
3
4
|
[root@prx01 cleanlog]
# vim /usr/local/cleanlog/delOldLogs.sh
#!/bin/sh
#删除输入路径下的修改时间在45天以前的日志文件
find
$1 -mtime +45 -name
"*log*"
-
exec
rm
-f {} \;
|
这段代码不难理解,就是清理参数1所在的路径下的修改时间在45天以前的日志文件
②指定清理哪些路径的日志的脚本del_all_OldLogs.sh:
1
2
3
4
5
|
[root@prx01 cleanlog]
# vim /usr/local/cleanlog/del_all_OldLogs.sh
#!/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"
|
③给脚本添加执行权限:
1
|
[root@prx01 cleanlog]
# chmod a+x /usr/local/cleanlog/del*.sh
|
④添加定时任务:
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 这个脚本
⑤查看定时任务:
1
|
[root@app05 logs]
# crontab -l
要使用crontab定时器工具,必须要启动cron服务: service cron start crontab的语法,以备日后救急。先上张超给力的图:
crontab命令 cron服务提供crontab命令来设定cron服务的,以下是这个命令的一些参数与说明: crontab -u //设定某个用户的cron服务,一般root用户在执行这个命令的时候需要此参数 任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工 作便会自动执行该工作。
crontab特殊的符号说明:
crontab文件的使用示例:
如何启动crontab的日志服务
发现UBuntu下居然没有自动打开cron的日志服务功能,解决方法如下 cron的日志功能使用syslogd服务,不同版本Linux可能装了不同的软件,这里介绍常见的两种: sysklogd>>>>>> 1. 编辑 /etc/syslog.conf,并且打开以cron.*开始的那行注释。 rsyslog>>>>>> 1. 修改rsyslog文件,将/etc/rsyslog.d/50-default.conf 文件中的#cron.*前的#删掉; |