Как запускать задание cron через каждые 5 часов
Как запустить Cron
работа через каждые 5 часов?
Я пробовал это
0 */5 * * * /path/to/script/script.sh (Not necessarily a shell script)
Но проблема с этим expression
это будет работать каждый 5 hour
но часы будут сброшены в полночь 00:00:00
каждый день.
Объяснение: если задание выполняется в полночь 00:00:00
тогда последующим будет время выполнения
00:00:00, 05:00:00, 10:00:00, 15:00:00, 20:00:00
после 20:00:00
работа будет выполняться в 00:00:00
который 1 hour
раньше, чем указано.
Но мое требование заключается в том, что задание должно выполняться с интервалом в 5 часов и не должно сбрасываться в полночь
Так что, если работа начинается в полночь 00:00:00
следующее должно быть выполнение заказа.
00:00:00, 05:00:00, 10:00:00, 15:00:00, 20:00:00, (Day 1)
01:00:00, 06:00:00, 11:00:00, 16:00:00, 21:00:00, (Day 2)
02:00:00 ... (Day 3)
Как мне добиться следующего через Cron
? Любая помощь будет оценена.
1 ответ
Один вариант из этого сообщения на форуме на unix.com Запускайте его каждый час и добавляйте в свой скрипт:
time_ct=$(cat /tmp/cron_time_ct)
if [ $time_ct -lt 5 ]
then
echo "Not yet time"
time_ct=$((time_ct+1))
echo $time_ct > /tmp/cron_time_ct
exit
else
time_ct=0
echo $time_ct > /tmp/cron_time_ct
fi
# rest of your task
Я сделал подобное, чтобы сделать логику типа "каждый второй понедельник". Запуск сценария каждый понедельник и разрешение только на выполнение каждого другого в сценарии.