* 5-10 * * * запустит сценарий между указанными таймингами, но как я буду контролировать счет?

Кстати, количество и время может быть любым, значит, оно будет динамическим, а не статичным. Просто установите статические числа для лучшего понимания.

2 ответа2

2

Одна проблема с вашим скриптом в том, что он будет запускаться каждую минуту (из-за первого «*»).

Поскольку у вас есть 6 часов, довольно сложно запустить cron только 4 раза.

Одним из решений может быть:

0 6,7,8,9 * * * /path/command
0

Вы не получите Cron. Он не "динамический" - он запускается, когда вы просите его запустить, без отклонений.

Если вы хотите 4 раза между 5 и 10, просто выберите 4 раза и напишите 4 строки. Нет точных точек для того, чтобы "сделать это в 1 строку", и мало, если таковые имеются, для его сжатия.

то есть:

17 5 * * * (command)
37 6 * * * (command)
17 8 * * * (command)
37 9 * * * (command)

Или вы могли бы действительно хотеть больше как:

1 5 * * * (command)
37 6 * * * (command)
17 8 * * * (command)
59 9 * * * (command)

Или, если вы любите компактирование (за которое все еще мало, если какие-либо очки начисляются):

17 5,8 * * * (command)
37 6,9 * * * (command)

Если вы действительно имели в виду с 5 до 10 вечера (в этом случае):

17 17,20 * * * (command)
37 18,21 * * * (command)

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .