基本格式 

*   *    *   *    *   command

分  时  日  月  周  命令

第1列表示分钟1~59 每分钟用*或者 */1表示

第2列表示小时1~23(0表示0点)

第3列表示日期1~31

第4列表示月份1~12

第5列标识号星期0~6(0表示星期天)

第6列要运行的命令

 

crontab文件的一些例子

# 每晚的21:30重启apache。

30 21 * * * /usr/local/etc/rc.d/lighttpd restart

# 每月1、10、22日

45 4 1,10,22 * * /usr/local/etc/rc.d/lighttpd restart

# 每天早上6点10分

10 6 * * * date

# 每两个小时

0 */2 * * * date

# 晚上11点到早上8点之间每两个小时,早上8点

0 23-7/2,8 * * * date

# 每个月的4号和每个礼拜的礼拜一到礼拜三的早上11点

0 11 4 * mon-wed date

# 1月份1日早上4点

0 4 1 jan * date

 

很多时候,我们计划任务需要精确到秒来执行,根据以下方法,可以很容易地以秒执行任务。

以下方法将每10秒执行一次

# crontab -e
* * * * * /bin/date >>/tmp/date.txt
* * * * * sleep 10; /bin/date >>/tmp/date.txt
* * * * * sleep 20; /bin/date >>/tmp/date.txt
* * * * * sleep 30; /bin/date >>/tmp/date.txt
* * * * * sleep 40; /bin/date >>/tmp/date.txt
* * * * * sleep 50; /bin/date >>/tmp/date.txt

注意如果命令用到%的话需要用\转义

01 01 * * * mysqldump -u root --password=passwd-t mustang > /root/backups/mustang-table_$(date +\%Y\%m\%d_\%H\%M\%S).sql

# backup mysql
00 01 * * * mysqldump -u root --password=passwd-d mustang > /root/backups/mustang_$(date +\%Y\%m\%d_\%H\%M\%S).sql
01 01 * * * mysqldump -u root --password=passwd-t mustang > /root/backups/mustang-table_$(date +\%Y\%m\%d_\%H\%M\%S).sql