Я хочу запустить cronjob ежедневно в определенном временном диапазоне, но только один раз в этот период. Как это возможно?
Я вижу возможность в anacrhon, но не знаю, как настроить такой сценарий.
Задача cron будет выполняться каждый раз только один раз по заданному расписанию / времени. Итак, если вы задали задание cron, в какое время вы хотите от 3 до 6, это будет выполняться только один раз в указанное время. Только один раз и не более одного раза!
См. Дополнительные пояснения и некоторые примеры по адресу: http://en.wikipedia.org/wiki/Cron
Я думаю, что самое простое обходное решение состоит в том, чтобы в течение интервала был выписан скрипт-оболочка каждые 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 работает под ограниченной «средой», и вы можете нужно экспортировать переменные среды и подобные вещи, но это совсем другой предмет.