Запуск Cron каждые х часов у минут

and1rey

Гуру форума
Регистрация
29 Дек 2007
Сообщения
228
Реакции
86
Подскажите, как настроить выполнение скрипта через Cron с периодичностью в х часов у минут?
Запускать, к примеру, каждые 23 часа проблем нет, прописываем * */23 * * *
Но мне нужно задать период именно в часах+минуты
п.с. я нуб в этом
 
Каждая команда в пользовательском файле crontab занимает одну строку и состоит из шести полей. Пользовательские файлы crontab находятся в каталоге /var/spool/cron

Общий формат команды:

------------------------------------------------
минута час день_месяца месяц день_недели команда
------------------------------------------------

Допустимые значения:
минута от 0 до 59
час от 0 до 23
день_месяца от 1 до 31
месяц от 1 до 12 (можно три буквы из названия месяца,
регистр не имеет значения от jan до dec)
день_недели от 0 до 6 (0 это воскресенье,
можно писать от sun до sat)

Каждое из полей даты и времени может быть обозначено символом * ,будет соответствовать любому возможному значению. Для этих полей можно указывать диапазоны значений, разделенных дефисом, например:

* 5 4-10 0-3 * echo "HELLO" -печать HELLO в 5:00 на 4,5,6,7,8,9,10
дни января, февраля, марта и апреля

пошаговая запись

* */2 * * sat echo "HELLO" -печать HELLO каждый четный час,
каждую субботу

равнозначная предыдущему примеру запись (списком)

* 0,2,4,6,8,10,12,14,16,18,20,22 * * sat echo "HELLO"
-печать HELLO каждый четный
час, каждую субботу

то же самое с указанием диапазона

* 0-23/2 * * sat echo "HELLO" -печать HELLO каждый четный
час, каждую субботу

59 23 31 dec * echo "Happy new year" -без комментариев :),
поздравит с новым годом
 
к примеру так
# выполнять каждый день в 0 часов 5 минут, результат складывать в log/daily
5 0 * * *
или так
# выполняется в 0:23, 2:23, 4:23 и т. д.
23 */2 * * *

Описание более понятней
Код:
Каждая строка планировщика имеет следующий формат:

* * * * * {пользователь} выполняемая_команда
- - - - -
| | | | |
| | | | ----- День недели (0 - 7) (Воскресенье =0 или =7)
| | | ------- Месяц (1 - 12) (можно три буквы из названия месяца,
| | |                        регистр не имеет значения от jan до dec)
| | --------- День (1 - 31)
| ----------- Час (0 - 23)
------------- Минута (0 - 59)
 
это я читал, гуглом пользоваться умею

Но мне нужно задать период именно в часах+минуты
еще раз: необходимо задать период выполнения, скажем, через каждые 10 часов 15 минут
 
ну и ???
я же тебе написал...
для твоего примера 15 */10 * * * - и будет тебе запуск каждые 10 часов и 15 минут =)
 
вы пишете
# выполняется в 0:23, 2:23, 4:23 и т. д.
23 */2 * * *

а мне нужно запускать через каждые 2:23, т.е. в 2:23, 4:46, 7:09 и т.д.

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

Как то так.
 
У меня несколько похожая стоит задача - тоже еще не решил, как лучше: необходимо запускать некий скрипт через каждые 8 часов 1 минуту. Т.е. если он запустился первый раз в 0.00 , то второй раз запустить в 8.01, в третий - в 16.02 и т.д.
Тоже подумываю, как-то скриптом автоматизировать, но все таки думаю запускать каждую минуту это чересчур.
Есть мысль, не знаю правильная или нет: по скрипту запускаю первый раз то что мне надо - после этого в этом же скрипте прибавляется 8.01 к текущему системному времени и изменяется последняя строка в кронтабе - т.е. можно просто - удаляется последняя строка и прописывается новая с новым временем запуска скрипта. Таким образом последняя строка в кронтабе всегда будет содержать конкретное время запуска...
 
У меня несколько похожая стоит задача - тоже еще не решил, как лучше: необходимо запускать некий скрипт через каждые 8 часов 1 минуту. Т.е. если он запустился первый раз в 0.00 , то второй раз запустить в 8.01, в третий - в 16.02 и т.д.
Тоже подумываю, как-то скриптом автоматизировать, но все таки думаю запускать каждую минуту это чересчур.
Есть мысль, не знаю правильная или нет: по скрипту запускаю первый раз то что мне надо - после этого в этом же скрипте прибавляется 8.01 к текущему системному времени и изменяется последняя строка в кронтабе - т.е. можно просто - удаляется последняя строка и прописывается новая с новым временем запуска скрипта. Таким образом последняя строка в кронтабе всегда будет содержать конкретное время запуска...
через 1 мин - нормально, он же грубо говоря один if сделает и завершит выполнение - нагрузок нет никаких. А скриптом менять кронтаб имхо плохое решение. У скрипта и не должны быть такие права - это же дырка в системе безопасности...
 
Назад
Сверху