据我所知,crontab 有这些字段,从左到右开始。
1 minutes 0-59
2 hours 0-23
3 days of month 0-31
4 month 1-12
5 day of the week 0-6
6 command
Run Code Online (Sandbox Code Playgroud)
我想在 15:30 每 15 天运行一次 foo 命令这是正确的,因为当月的运行命令 1 和 15 有 30 天(31 天)所以每 15 天运行一次
30 15 1,15 * * /sbin/foo -a 1> /dev/null
Run Code Online (Sandbox Code Playgroud)
这个语法也正确吗?
30 15 */15 * * /sbin/foo -a 1> /dev/null
Run Code Online (Sandbox Code Playgroud)
系统是使用 Dillon Cron 的 Slackware Linux
tha*_*isp 15
此语法30 15 */15 * *是正确的,但它与 this 不同30 15 1,15 * *。
后者将在月份1st和15th月份执行命令,因为它具有固定的“月份日期”字段的逗号分隔值。
该/定义的步骤,这意味着*/15将每一个执行15天,从启动1,这意味着:1st,16th(对于所有个月),也31th(对具有31个天的任何一个月)。
如前所述man crontab(5),步长值可以与范围结合使用。因此,如果您想使用/可以执行的语法获得相同的结果:30 15 1-15/14 * *这意味着30 15 1,15 * *.
另一个例子,如果你想每 15 天运行一次,但在每个月的 5 日和 20 日运行:5-20/15. 当然,对于这种情况,写5,20. 但是将范围与步骤结合起来,可以定义范围执行的开始结束。
对于本月的第 1、3、5、7 天等: */2
对于本月的第 2、4、6、8 天等: 2-30/2
对于记录(0-59)和时间(0-23)中,第一有效值是0这样的:0 */2 * * *在装置00:00,02:00,04:00等。
| 归档时间: |
|
| 查看次数: |
1331 次 |
| 最近记录: |