crontab 任务计划
2013-07-02 by dongnan
举个栗子
每周一的0点同步时间:
crontab -l
0 0 * * 1 /usr/sbin/ntpdate time-nw.nist.gov
# 还可以通过文件查看任务
cat /var/spool/cron/root
0 0 * * 1 /usr/sbin/ntpdate time-nw.nist.gov
每五分钟执行
*/5 * * * *
每小时执行
0 * * * *
每天执行
0 0 * * *
每周执行
0 0 * * 0
每月执行
0 0 1 * *
每年执行
0 0 1 1 *
crontab文件
crontab
文件包含送交cron
守护进程的一系列作业和指令。每个用户可以拥有自己的crontab
文件。
crontab
文件的每一行均遵守特定的格式,由空格或tab
分隔为数个领域,每个领域可以放置单一或多个数值。
操作符号
在一个区域里填写多个数值的方法:
- 逗号: (',') 分开的值,例如,
1,3,4,7,8
。 - 连词符: ('-') 制定值的范围,例如,
1-6
等同于1,2,3,4,5,6
。 - 星号:('*') 代表任何可能的值。例如,在"小时域" 里的星号等于是"每一个小时"等。
- 持斜线:('/') 操作符,用于表示跳过某些给定的数。例如,
*/3
在小时域中等于0,3,6,9,12,15
等被3整除的数。
时间设置
cat /etc/crontab
# 返回结果
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
- 在
星期域
(第五个域),0``和7
都被视为星期日。 - 如果日期和星期同时被设定,那么其中的一个条件被满足时,指令便会被执行。
- 前5个域称之分时日月周,可方便个人记忆。
- 从第六个域起,指明要执行的命令。