Crontab
(cron table)是一个用于设置周期性执行任务的列表。它利用 cron
守护进程来执行指定时间和日期的任务。Crontab 的配置语法包含六个字段,前五个字段指定了任务执行的时间,最后一个字段是要执行的命令。
Crontab 配置时间由五个字段组成,每个字段代表不同的时间单位。字段之间用空格分隔。这五个字段的具体含义如下:
分钟:范围从 0 到 59。
小时:范围从 0 到 23。
日期:范围从 1 到 31,表示一个月中的天数。
月份:范围从 1 到 12,其中 1 表示一月,2 表示二月,依此类推。
星期几:范围从 0 到 7,其中 0 和 7 都表示星期天,1 表示星期一,2 表示星期二,等等。
每个字段可以包含不同类型的值:
具体的数值:指定特定的时间点,例如 5
表示每小时的第 5 分钟,或者每月的第 5 天。
星号(*):代表该字段的每个可能的值,例如 *
在小时字段中表示每个小时。
范围:用连字符 -
表示一段连续的范围,例如 1-5
在星期几字段中表示星期一到星期五。
列表:用逗号 ,
分隔,表示不连续的多个值,例如 3,5,7
在日期字段中表示每月的第 3、5、7 天。
步长:用斜杠 /
表示间隔的频率,例如 */15
在分钟字段中表示每 15 分钟。
一个完整的 crontab 时间配置行可能如下所示:
复制代码 30 9 1,151-5 /path/to/command
这条 crontab 配置的含义是:在每月的第 1 天和第 15 天的上午 9:30,以及每周一到周五的上午 9:30,执行 /path/to/command
。
正确设置 crontab 配置对于确保任务按预期时间运行非常重要。在编辑 crontab 时,你可以使用 crontab -e
命令,并确保按照上述格式正确设置时间字段。
下面是一些 crontab 的配置例子,展示了不同类型的定时任务:
每分钟执行:
/path/to/command
每小时的第 5 分钟执行:
5 /path/to/command
每天午夜(00:00)执行:
0 0/path/to/command
每天中午(12:00)执行:
0 12/path/to/command
每小时执行:
0 /path/to/command
每月 1 号的午夜执行:
0 0 1/path/to/command
每周一的早上 6:30 执行:
30 61 /path/to/command
每天 2:15 AM 和 2:15 PM 执行:
15 2,14/path/to/command
每分钟的前 5 秒执行 (需要特定的 cron 版本,如 Vixie cron):
*/5 * * * * * /path/to/command
每月的最后一天执行:
0 0 L * * /path/to/command
每月的倒数第二天执行:
0 0 L-1/path/to/command
每个季度的第一天执行:
0 0 1 1,4,7,10/path/to/command
每年 1 月 1 日和 7 月 4 日执行:
0 0 1 1,7 1,4 /path/to/command
每个星期一到星期五的下午 5:00 执行:
复制代码 0 171-5 /path/to/command
每 15 分钟执行一次:
*/15 * * * * /path/to/command
在每个小时的第 0 和第 30 分钟执行:
0,30/path/to/command
在每个月的第三个星期五的午夜执行:
复制代码 0 05#3 /path/to/command
在每个季度的第一个月的第一个工作日执行:
0 0 1 1-12/3 1 /path/to/command
每年的特定日期和时间执行 (例如:每年的 25 号 12 月,早上 6:00):
0 6 25 12/path/to/command
请注意,具体的 cron 版本可能会有不同的扩展和语法,所以上面的一些例子(如使用 L
或 )可能不适用于所有的 cron 实现。务必查阅您使用的 cron 版本的文档以确认支持