Подтвердить что ты не робот

Как сделать работу cron каждые 72 минуты

Как я могу получить задание cron каждые 72 минуты? Или некоторые не такие красивые цифры?

4b9b3361

Ответ 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