Как я могу получить задание cron каждые 72 минуты? Или некоторые не такие красивые цифры?
Как сделать работу cron каждые 72 минуты
Ответ 1
Так как cron
запускает задания по времени, а не на основе интервалов, нет ослепительно простого способа сделать это. Однако, хотя это немного взломан, вы можете настроить несколько строк в crontab
, пока не найдете общий знаменатель. Поскольку вы хотите, чтобы работа выполнялась каждые 72 минуты, она должна выполняться в следующие моменты времени:
- 00:00
- 1:12
- 2:24
- 3:36
- 4:48
- 6:00
- 7:12
- ...
Как вы можете видеть, образец повторяется каждые 6 часов с 5 заданиями. Итак, у вас будет 5 строк в crontab
:
0 0,6,12,18 * * * command 12 1,7,13,19 * * * command 24 2,8,14,20 * * * command 36 3,9,15,21 * * * command 48 4,10,16,22 * * * command
Другим вариантом, конечно же, является создание демона обертки или оболочки script, которая выполняет и спит в течение требуемого времени до остановки.
Ответ 2
Использовать при (man at). Попросите ваше приложение или запуск script рассчитать время запуска в течение 72 минут в будущем и планировать запуск, прежде чем он начнет работать.
Доступно также для Windows XP и Vista.
Вот пример для gnu/linux: at -f command.sh теперь + 72 минуты
Ответ 3
Вы всегда можете использовать метод запуска cron каждую минуту, а ваш script выйти немедленно, если он был запущен совсем недавно, чем 72 минуты назад.
Ответ 4
Вы не можете напрямую сделать это из cron/crontab.
Задачи Cron запускаются по определенному графику, а не на определенном интервале.
Одним из вариантов было бы разработать график, который приблизил бы ваши "каждые 72 минуты", запустив в полночь, 1:12, 2:24, 3:36,... и растянув его, чтобы приблизить удар по полночь. Ваш файл crontab может указывать все эти времена как раз для выполнения.
Другой альтернативой могло бы быть то, что отдельное приложение обрабатывает планирование и запускает ваше приложение.
Ответ 5
Для этого вам нужно установить ровно 20 задач, т.е. установить один в 00:00, следующий в 01:12, следующий в 02:24 и т.д.
20 итераций делают полный день.
К сожалению, это единственный способ сделать это, поскольку задачи cron настраиваются в фиксированном расписании заранее, а не запускаются, скажем, "через X минут последняя задача была выполнена".
Ответ 6
Не используйте cron...
#!/bin/sh
while [ true ]
do
sleep 4320
echo "Put your program here" &
done
Ответ 7
Я знаю, что это давно назрело, но я смотрел на некоторые проблемы с расписанием и видел этот вопрос.
Просто сделайте это в своем crontab
*/72 * * * */home/ script.sh