跳转至

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个域称之分时日月周,可方便个人记忆。
  • 从第六个域起,指明要执行的命令。

参考

Crontab

欢迎关注微信公众号: 运维录

Back to top