Запускайте Cronjob каждую ночь между 3-6 o часами, но только один раз

Я хочу запустить cronjob ежедневно в определенном временном диапазоне, но только один раз в этот период. Как это возможно?

Я вижу возможность в anacrhon, но не знаю, как настроить такой сценарий.

1
задан 19 August 2013 в 22:21

2 ответа

Задача cron будет выполняться каждый раз только один раз по заданному расписанию / времени. Итак, если вы задали задание cron, в какое время вы хотите от 3 до 6, это будет выполняться только один раз в указанное время. Только один раз и не более одного раза!

См. Дополнительные пояснения и некоторые примеры по адресу: http://en.wikipedia.org/wiki/Cron

0
ответ дан 24 May 2018 в 18:53
  • 1
    И что, если это конкретное время прошло, пока компьютер выключен? Будет ли crontab запускать его при запуске? – LeMike 19 August 2013 в 22:55
  • 2
    @MikePretzlaw Ну, весь интервал между 3 и 6 может проходить, когда ПК выключен. – Radu Rădeanu 19 August 2013 в 23:01
  • 3
    Если это так, то окно времени ушло - не имеет значения. Будет ли * 3-6 * * * foo.sh работать один раз между 3 и 6 o'lock? – LeMike 19 August 2013 в 23:04
  • 4
    @MikePretzlaw Нет, cron не понимает интервалов. – Radu Rădeanu 19 August 2013 в 23:13

Я думаю, что самое простое обходное решение состоит в том, чтобы в течение интервала был выписан скрипт-оболочка каждые N минут, но он начинается с проверки наличия файла «locker», который он создает при выполнении.

И линия cron будет выглядеть так:

*/10 3-6 * * * /wherever/the/script/is/wrapper-script.sh

Или, возможно,

*/10 3-6 * * * bash /wherever/the/script/is/wrapper-script.sh

Единственное предостережение в том, что cron работает под ограниченной «средой», и вы можете нужно экспортировать переменные среды и подобные вещи, но это совсем другой предмет.

0
ответ дан 24 May 2018 в 18:53

Другие вопросы по тегам:

Похожие вопросы: