Как запускать задание 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

Я сделал подобное, чтобы сделать логику типа "каждый второй понедельник". Запуск сценария каждый понедельник и разрешение только на выполнение каждого другого в сценарии.

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