Запускать работу cron каждые 5 минут между двумя


18

Есть ли способ указать задание, которое запускается каждые 5 минут между временем начала и временем окончания в рабочие дни в crontab?

Обновление Я думаю, что важно, чтобы мое время начала и окончания не было в круглые часы. Таким образом, указание 9-5 в столбце часа недостаточно. Я хочу 9: 30-17: 30.

Ответы:



1

Если ответ Игнасио Васкеса-Абрамса на самом деле не работает для вас, например, потому что сценарию нужно большое количество параметров или критерии вызова не тривиальны (или не привязаны ко времени), то альтернативный подход заключается в том, чтобы сделать простой Скрипт-обертка, вызывайте скрипт-обертку через регулярные промежутки времени, и пусть скрипт-обертка проверяет текущее время и вызывает основной скрипт.

Например:

#/bin/bash

# Check to see if we should run the script now.
HOUR=$(date +%H)
MINUTE=$(date +%M)
if test $HOUR -lt 9; then exit 0; fi
if test $HOUR -eq 9 -a $MINUTE -lt 30; then exit 0; fi
if test $HOUR -eq 17 -a $MINUTE -gt 30; then exit 0; fi
if test $HOUR -gt 17; then exit 0; fi

# All checks passed; we should run the script now.
exec script.sh ... long list of parameters ...

Это позволяет более гибко кодировать критерии выполнения, чем это позволяет синтаксис cron, при относительно небольших затратах на регулярный вызов оболочки и отдельного сценария.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.