0%

Crontab 定时任务语法示例

Cron是一个任务调度守护进程,它可以按指定的时间间隔执行任务,即定时任务。

例如,您可以设置cron作业来备份数据库或数据,发送电子邮件等。这些任务称为cron作业,主要用于自动化系统维护或管理。

间隔时间表示法

通过 5 个*来确定命令或任务的执行时间,这 5 个*的具体含义如下所示。

1
2
3
4
5
6
7
8
* * * * * command(s)
- - - - -
| | | | |
| | | | ----- Day of week (0 - 7) (Sunday=0 or 7)
| | | ------- Month (1 - 12)
| | --------- Day of month (1 - 31)
| ----------- Hour (0 - 23)
------------- Minute (0 - 59)
项目 含义 范围
第一个”*” 一小时当中的第几分钟(minute) 0~59
第二个”*” 一天当中的第几小时(hour) 0~23
第三个”*” 一个月当中的第几天(day) 1~31
第四个”*” 一年当中的第几个月(month) 1~12
第五个”*” 一周当中的星期几(week) 0~7(0和7都代表星期日)

特定含义的符号表示

在时间表示中,还有一些符号具有固定的含义,如下所示:

常用的符号 含义
*(星号) 代表任何时间。比如第一个”*”就代表一小时种每分钟都执行一次的意思。
,(逗号) 代表不连续的时间。比如”0 8,12,16***命令”就代表在每天的 8 点 0 分、12 点 0 分、16 点 0 分都执行一次命令。
-(中杠) 代表连续的时间范围。比如”0 5 ** 1-6命令”,代表在周一到周六的凌晨 5 点 0 分执行命令。
/(正斜线) 代表每隔多久执行一次。比如”/10***命令”,代表每隔 10 分钟就执行一次命令。

实际例子

实例1:每1分钟执行一次myCommand

1
* * * * * myCommand

实例2:每小时的第3和第15分钟执行

1
3,15 * * * * myCommand

实例3:在上午8点到11点的第3和第15分钟执行

1
3,15 8-11 * * * myCommand

实例4:每隔两天的上午8点到11点的第3和第15分钟执行

1
3,15 8-11 */2  *  * myCommand

实例5:每周一上午8点到11点的第3和第15分钟执行

1
3,15 8-11 * * 1 myCommand

实例6:每晚的21:30重启smb

1
30 21 * * * /etc/init.d/smb restart

实例7:每月1、10、22日的4 : 45重启smb

1
45 4 1,10,22 * * /etc/init.d/smb restart

实例8:每周六、周日的1 : 10重启smb

1
10 1 * * 6,0 /etc/init.d/smb restart

实例9:每天18 : 00至23 : 00之间每隔30分钟重启smb

1
0,30 18-23 * * * /etc/init.d/smb restart

实例10:每星期六的晚上11 : 00 pm重启smb

1
0 23 * * 6 /etc/init.d/smb restart

实例11:每一小时重启smb

1
0 */1 * * * /etc/init.d/smb restart

实例12:晚上11点到早上7点之间,每隔一小时重启smb

1
0 23-7/1 * * * /etc/init.d/smb restart