问题描述
|
此crontab语法是什么意思
\"*/15 * * * 2-5\"
我认为这意味着它从星期二到星期六每隔15分钟运行一次。
我可以将其更改为:
\"*/55 * * * 2-5\"
由于某种原因,这似乎不起作用。
您能在开头解释* /吗?
谢谢
解决方法
如果您希望每15分钟运行一次,则您的第一个示例应该可以。第五位置的
2-5
表示星期二至星期五。
您想用*/55
完成什么?
可以在Wikipedia中找到良好的语法说明:
星号(*)
星号表示cron
表达式将匹配所有值
领域的;例如,使用星号
在第四个字段(月)中
指出每个月。
斜线(/)
斜线用于描述
范围的增量。例如
1st字段中的3-59 / 15(分钟)
将指示第3分钟
小时,此后每15分钟一次。
形式\“ * / ... \”等效于
格式为“ 0-59 / ... \”。
,“ 4”表示每xx个时间单位。
在您的示例中,*/15
表示每15分钟=>:15:30:45
*/55
每55分钟一次,它将在每小时之后的55点启动脚本(10:55、11:55、12:55 ....)
,\"*/15 * * * 2-5\"
*/15
并不表示它每隔一小时运行15分钟......9ѭ是一个步数指示器,意味着它每15分钟运行一次(即每小时运行4次)
从手册页:
> man 5 crontab
Steps are also permitted after an asterisk,so if you want to say ``every two hours\'\',just use ``*/2\'\'.
因此,如果要重复运行某些内容,请仅使用ѭ11表示法。每小时多次,一天多次等等。
彼得
,与民间传说相反,* / xx并不表示每xx个时间单位。
/模式表示大约每xx个时间单位,但不在范围的末尾。
仅在xx可以被单位均分的情况下有效(例如,分钟或秒,仅是/ 2,/ 3,/ 4,/ 5,/ 6,/ 8和/ 12)
例如* / 5会在大多数时间每隔5天重复一次,除非在月末根据第1、2或4天重复一次,具体取决于月份和leap年。
因为55非常接近60,所以它实际上将按您的预期工作,但只是出于巧合(因为四舍五入)。如果您写了* / 25,它将每小时运行两次,分别在:25和:50
,Jaime Guerroro的答案接近RHEL 7.2上的正确行为
这是我的发现。
与cron条目一样
*/55 * * * * /root/test.sh &>> /root/output.log
我明白了
=== Start /root/test.sh Wed May 18 19:55:01 ===
=== Start /root/test.sh Wed May 18 20:00:01 ===
=== End /root/test.sh Wed May 18 20:02:35 ===
=== End /root/test.sh Wed May 18 20:03:44 ===
来自Wiki的说明,https://en.wikipedia.org/wiki/Cron
例如,在日期字段中输入* / 5有时会在
1、2或3天,具体取决于月份和leap年;这是因为
cron是无状态的(它不记得上一次执行的时间
也不计算与现在之间的差异
频率计数-cron仅仅是一个模式匹配器)。