Linux定时器工具-crontab 各参数详解及如何查看日志记录



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


注:


  1. 为了防止出现权限不够的情况,因此这里设置了一个root用户的定时任务
  2. 这句代码的意思是:在每周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用户在执行这个命令的时候需要此参数  
  crontab -l //列出某个用户cron服务的详细内容
  crontab -r //删除没个用户的cron服务
  crontab -e //编辑某个用户的cron服务
  比如说root查看自己的cron设置:crontab -u root -l
  再例如,root想删除fred的cron设置:crontab -u fred -r
  在编辑cron服务时,编辑的内容有一些格式和约定,输入:crontab -u root -e
  进入vi编辑模式,编辑的内容一定要符合下面的格式:*/1 * * * * ls >> /tmp/ls.txt
        任务调度的crond常驻命令
        crond 是linux用来定期执行程序的命令。当安装完成操作系统之后,默认便会启动此  

       任务调度命令。crond命令每分锺会定期检查是否有要执行的工作,如果有要执行的工

       作便会自动执行该工作。


crontab特殊的符号说明:

"*"代表所有的取值范围内的数字。特别要注意哦!

"/"代表每的意思,如"*/5"表示每5个单位

"-"代表从某个数字到某个数字

","分散的数字

crontab文件的使用示例:

30 21 * * * 表示每晚的21:30

45 4 1,10,22 * * 表示每月1、10、22日的4 : 45

10 1 * * 6,0 表示每周六、周日的1 : 10

0,30 18-23 * * * 表示在每天18 : 00至23 : 00之间每隔30分钟

0 23 * * 6 表示每星期六的11 : 00 pm

* */1 * * * 每一小时

* 23-7/1 * * * 晚上11点到早上7点之间,每隔一小时

* 8,13 * * 1-5 从周一到周五的上午8点和下午1点

0 11 4 * mon-wed 每月的4号与每周一到周三的11点

0 4 1 jan * 一月一号的4点

如何启动crontab的日志服务

发现UBuntu下居然没有自动打开cron的日志服务功能,解决方法如下

cron的日志功能使用syslogd服务,不同版本Linux可能装了不同的软件,这里介绍常见的两种:

sysklogd>>>>>>

1. 编辑 /etc/syslog.conf,并且打开以cron.*开始的那行注释。
2. 运行 /etc/init.d/sysklogd restart 。
3. 运行 /etc/init.d/cron restart 。

rsyslog>>>>>>

1. 修改rsyslog文件,将/etc/rsyslog.d/50-default.conf 文件中的#cron.*前的#删掉;
2. 重启rsyslog服务service rsyslog restart
3. 重启cron服务service cron restart

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值