这个crontab语法意味着什么
"*/15 * * * 2-5"
我认为这意味着它从周二到周六每隔15分钟运行一次。 我可以改为:
"*/55 * * * 2-5"
由于某种原因似乎不起作用。
你能解释一下* /的内容吗?
由于
答案 0 :(得分:6)
如果您希望每15分钟运行一次,那么您的第一个示例应该没问题。第5个职位的2-5
指的是星期二到星期五。
您希望使用*/55
完成什么?
星号(*)
星号表示cron 表达式将匹配所有值 领域的;例如,使用星号 在第4场(月)会 每月表明。
斜线(/)
斜杠用于描述 范围的增量。例如 3-59 / 15在第1场(分钟) 将指示第3分钟 小时,之后每15分钟一次。 形式“* / ...”相当于 表格“0-59 /...”。
答案 1 :(得分:2)
*/xx
表示每xx时间单位。
在您的示例中,*/15
表示每15分钟=> :15:30:45
*/55
将每55分钟一次,它将在每小时后的55点(10:55,11:55,12:55 ......)启动剧本。
答案 2 :(得分:2)
"*/15 * * * 2-5"
*/15
并不意味着它每小时过去15分钟就会运行一次...... /15
是一个步骤指示器,意味着它每15分钟运行一次(即每小时4次)
从手册页:
> man 5 crontab
Steps are also permitted after an asterisk,
so if you want to say ``every two hours'',
just use ``*/2''.
因此,如果您想重复运行某些内容,请仅使用*/
表示法。一小时多次,一天多次等等。
彼得
答案 3 :(得分:0)
与民间传说相反,* / xx并不代表每个xx时间单位。
/ pattern表示约每xx时间单位,但不在范围的末尾。
它只能在xx被单位整除的情况下工作(即分钟或秒,只有/ 2,/ 3,/ 4,/ 5,/ 6,/ 8和/ 12)
例如* / 5将在大多数时间每5天重复一次,除非在1天,2天或4天后重复的月份结束,具体取决于月份和工作日。
因为55如此接近60,它实际上会按照你的意图工作,但只是巧合(因为四舍五入)。如果你写了* / 25,它将每小时运行两次,分别为:25和50
答案 4 :(得分:0)
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天,取决于月份和闰年;这是因为 cron是无状态的(它不记得上次执行的时间 也不计算它和现在之间的差异,需要准确 频率计数 - 相反,cron只是模式匹配器。)