Выполнять crontab два раза в день в 00h и 13:30

Я хочу выполнить script два раза в день в 00:00 и 13:30, поэтому пишу:

0,30 0,13 * * *

это кажется неправильным для меня, потому что вот так, script будет срабатывать в 00:00, 00:30, 13:00 и 13:30. Любая идея?

Ответы

Ответ 1

Почему бы не поставить две записи cron? Один на 00:00 и один на 13:30? Я не думаю, что вы можете делать то, что хотите, в одной записи, поскольку двухминутные определения будут применяться для обоих определений часов (как вы уже определили).

Альтернативой является, возможно, выполнить один script в 00:00. Это script выполнит ваш оригинальный script, а затем подождите 13.5 часов, а затем снова запустите это script. Это было бы легко сделать с помощью простой команды sleep, но я думаю, что это неинтуитивно, и я не уверен, как cron управляет такими длительными процессами (что произойдет, если вы отредактируете crontab) - это убивает порожденную работу и др.)

Ответ 2

Попробуйте это: 00 01,13 * * *

он будет работать при 1 A.M и 1 P.M

Ответ 3

Вы не можете сделать это с помощью cron на одной строке. Вам нужно создать две отдельные строки:

# Will run "YourCommand" at 00:00
0   0   *   *   *   YourCommand
# Will run "YourCommand" at 13:30
30  13  *   *   *   YourCommand

Или как одна строка, вы можете запускать команду каждые x часов, например:

# Will run "YourCommand" every 12 hours
0   */12   *   *   *   YourCommand

Ответ 4

попробуйте...

00 01,13 * * * [ `date +%H%M` == 1330 ] || [ `date +%H%M` == 0000 ] && logger "its time"

Ответ 5

30 0,13 * * * somecommand.sh

Это просто пример, но вы увидите, что это запись cron, которая будет работать в 0:30 и 13:30 (13 - в военное время). Просто запятая отделяет часы или разделяет запятую любую секцию cron.