每天两次在00h和13:30执行crontab

Was*_*oui 27 cron crontab

我想在00:00和13:30每天执行两次脚本,所以我写道:

0,30 0,13 * * *
Run Code Online (Sandbox Code Playgroud)

这对我来说似乎不对,因为这样,剧本将在00:00,00:30,13:00和13:30开火.任何的想法 ?

小智 67

试试这个-: 00 01,13 * * *

它将在凌晨1点和下午1点运行

  • 这不是OP想要的,当然 - '每天在00h和13:30执行crontab两次'.导致问题的是分钟和小时的差异 (6认同)
  • 我实际上认为这是一个不错的解决方法。在很多cron用例中,可以将指定时间更改为<60分钟 (3认同)
  • @BrianAgnew 你的评论听起来很痛苦。只是说。另外,评分反馈表明,尽管 OP 对此答案不满意,但我们显然正在寻找这个确切的东西。事实上超过70%,所以人更多。我认为这是一个更大的好处,你同意吗? (3认同)
  • 这不是“苦涩”,它直接解决了规定/要求的要求以及这个答案是否解决了它。 (3认同)

Bri*_*new 26

为什么不输入两个cron条目?一个用于00:00,一个用于13:30?我不认为你可以在一个条目中做你想做的事,因为两分钟定义将适用于两个小时定义(如你所确定的).

另一种方法是在00:00执行一个脚本.该脚本将执行您的原始脚本,然后等待13.5小时,然后再次执行该脚本.通过一个简单的睡眠命令很容易做到,但我认为这是不直观的,我不确定如何cron管理如此长时间运行的进程(如果你编辑crontab它会发生什么- 它会杀死一个衍生的工作等)

  • @wassim:cron用于很好的重复间隔,而不是一天中的任意时间.使用两个cron条目并继续前进. (6认同)
  • 它可能是愚蠢的,但它可能是a)可维护的b)不可避免的 (3认同)

Ang*_*115 9

你不能用cron在一行上做到这一点.您必须创建2个单独的行,如下所示:

# Will run "YourCommand" at 00:00
0   0   *   *   *   YourCommand
# Will run "YourCommand" at 13:30
30  13  *   *   *   YourCommand
Run Code Online (Sandbox Code Playgroud)

或者作为单行,您可以每x小时运行一次命令,如下所示:

# Will run "YourCommand" every 12 hours
0   */12   *   *   *   YourCommand
Run Code Online (Sandbox Code Playgroud)


Red*_*ket 7

尝试 ...

00,30 00,13 * * * [ `date +%H%M` == 1330 ] || [ `date +%H%M` == 0000 ] && logger "its time"
Run Code Online (Sandbox Code Playgroud)

  • 太复杂了,以前的答案更简单 (2认同)

ind*_*ndb 7

Try this out: 0 6,18 * * *
Run Code Online (Sandbox Code Playgroud)

它将在第 6 小时和第 18 小时的第 0 分钟运行

或者你可以在cronguru试试