Я хотел бы настроить запуск cron в 4:30 каждые пять минут в течение 3 часов, чтобы он прекратил работу в 7:30, как это сделать? будет ли это работать ??

*/5,30  4-7  *  *  *

2 ответа2

1

Вы не можете указать желаемое время в одной строке cron

# 4.30 - 4.59 evry 5 mins
30-59/5 4 * * * 
# 5.00 - 6.55 evry 5 mins
*/5 5-6 * * * 
# 7.00 - 7.30 evry 5 mins
0-30/5 7 * * * 

ИЛИ добавить что-то подобное в свой хрон

*/5 4-7 * * *  [ "$(date +%H%M)" -gt 0429 -a "$(date +%H%M)" -lt 0731 ] && YourScriptHere

# $( ) = means run command inside and get the results, same as backticks `
# be careful with date, because you can also set your computers time with it.
# man date will give you list of %LETTER options to specifu
# %H = hour, %M = minutes,
#  -gt = greater than, -lt lessthan -a = and, && = continue execution if previous command 
# did not return error. 
0

Я провел тест на своем сервере со следующей настройкой:

*/5,30 12-13 * * * /root/crontest > /var/log/crontest.log

Где скрипт crontest выглядел так:

echo "Running at:"`eval date +%Y-%m-%d-%H:%M`

Вот вывод:

Running at:2011-04-29-12:20
Running at:2011-04-29-12:25
Running at:2011-04-29-12:30
Running at:2011-04-29-12:35
Running at:2011-04-29-12:40
Running at:2011-04-29-12:45
Running at:2011-04-29-12:50

Таким образом, в основном ваши настройки будут запускаться каждые 5 минут между указанными вами часами. Все, что делает 30, это, скажем, запускает его каждые 30 минут, что уже происходит из-за интервала в 5 минут. Таким образом, он не будет ограничивать запуск cron от 0 до 30 минут, а затем по 5 минут каждый в этом интервале.

Вы могли бы решить это, ограничив это так:

*/5,0-30 12-13 * * * /root/crontest > /var/log/crontest.log

Изменить: Это не будет работать, так как, означает ИЛИ, поэтому он будет работать каждые 5 минут

Если это не сработает, вам, вероятно, придется решить эту проблему следующим образом:

  • Обработка 5-минутного интервала в вашем скрипте
  • Измените интервал с 4:30 - 7:30 до 4:00 - 7:00.

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