Выполнять 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.