54

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

0,30 0,13 * * *

这对我来说似乎是错误的,因为像这样,脚本将在 00:00 、 00:30 、 13:00 和 13:30 触发。任何的想法 ?

4

7 回答 7

132

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

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

于 2014-03-05T07:51:52.293 回答
48

您不能在一个条目中做您想做的事情,因为两分钟定义将适用于两个小时定义(如您所确定的)。

解决方案是(不幸的是)使用两个 cron 条目。00:00 一份,13:30 一份。

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

于 2012-12-21T16:19:18.037 回答
23

You can not do that with cron on a single line. You have to create 2 separate lines like so:

# Will run "YourCommand" at 00:00 every day of every months
#Min   Hours   D of the M       Month   D of the Week   Command
0      0       *                *       *               YourCommand

# Will run "YourCommand" at 13:30 every day of every months
30     13      *                *       *               YourCommand

Or as a single line you can run a command every x hours, like so:

# Will run "YourCommand" every 12 hours
0   */12   *   *   *   YourCommand
于 2017-02-02T10:50:54.313 回答
8

尝试 ...

00,30 00,13 * * * [ `date +%H%M` == 1330 ] || [ `date +%H%M` == 0000 ] && logger "its time"
于 2015-03-13T05:23:38.110 回答
8
Try this out: 0 6,18 * * *

it will run at minute 0 past hour 6 and 18

Or you can try it out on cronguru

于 2020-10-19T15:34:52.603 回答
1

30 0,13 * * * somecommand.sh

这只是一个示例,但您会看到这是一个 cron 条目,它将在上午 0:30 和下午 1:30 运行(军事时间中的 13 是 1)。只需用逗号分隔小时数,或用逗号分隔 cron 的任何部分。

于 2015-11-14T14:03:27.450 回答
0

try this,

0 10 9/12 ? * *

At second :00, at minute :10, every 12 hours starting at 09am, of every day

于 2021-08-27T19:10:10.413 回答