定时任务的使用

crontab命令参数和语法

常用参数说明

-e 编辑crontab文件 -l 显示crontab内容

编写格式

* * * * * 要执行的命令或脚本 * * * * * echo 1 >> /tmp/log.txt

每列的含义

共有5列,简单计为分时日月周。

minute:表示分钟,可以是从0到59之间的任何整数。
hour:表示小时,可以是从0到23之间的任何整数。
day:表示日期,可以是从1到31之间的任何整数。
month:表示月份,可以是从1到12之间的任何整数。
week:表示星期几,可以是从0到7之间的任何整数,这里的0或7代表星期日。

最后跟上要执行的命令或者脚本。

其中每列可以使用操作符来表示
* 星号(*):代表所有可能的值,例如month字段如果是星号,则表示在满足其它字段的制约条件后每月都执行该命令操作 * 逗号(,):可以用逗号隔开的值指定一个列表范围,例如,“1,2,5,7,8,9” * 中杠(-):可以用整数之间的中杠表示一个整数范围,例如“2-6”表示“2,3,4,5,6” * 正斜线(/):可以用正斜线指定时间的间隔频率,例如“0-23/2”表示每两小时执行一次。同时正斜线可以和星号一起使用,例如*/10,如果用在minute字段,表示每十分钟执行一次。

crontab使用

# 每10分钟
*/10 * * * *  

# 每小时
* */1 * * *

# 每天凌晨1点
0 1 * * *

# 18点-23点每30分钟  
*/30 18-23 * * *

# 7点到9点每分钟执行
* 7-11 * * *  
 
# 7到11点每小时  
0 7-11 * * *

# 23点,0点-7点每小时执行
0 23,0-7 * * *  

# 23点到7点之间每隔1小时执行
* 23-7/1 * * * 

定时任务遇到的问题

定时任务结尾不追加>/dev/null 2>&1 或不追加到文件,会导致inode空间被占满,从而系统服务不正常。

  1. 邮件的软件没有开启, 则大量小文件堆积在/var/spool/postfix/maildrop/ — 导致inode被占满.

  2. 邮件开启了–定时任务会不断的给root用户发邮件。 解决方法,关闭邮件

    /etc/init.d/postfix status
    /etc/init.d/postfix stop
    chkconfig postfix off 关闭开机启动
    chkconfig | grep postfix
    postfix 0:off 1:off   2:off   3:off   4:off   5:off   6:off