@orange12

Как должно работать правило для cron 0,20,40 * 29 2 7?

Вообще изначально данное правило было 0,20,40 * * * *
То есть каждый час в 0, 20 и 40 минут.
Но после мне понадобилось временно отключить задачу(а удалять не охото было) и я хотел поставить невыполнимые в ближайшее время условия 0,20,40 * 29 2 7.
Я думал что при этом задача будет выполнятся так же каждый час в 0, 20, 40 минут, но только 29 февраля и если это будет воскресенье, что маловероятно.
Но в прошедшее воскресенье, 15 февраля, скрипт заработал. Что это? Это получается если в месяце 29 числа нет, то вместо дня как бы подставляется знак * ? И получается выполнение каждое воскресенье февраля?
Но воспользовавшись сервисом(не знаю правильно ли он работает) cron.schlitt.info/index.php?cron=0%2C20%2C40+*+29+... я вообще запутался.
Он показывает что скрипт будет выполняться по воскресеньям в феврале 2016 года так же не глядя на день месяца, хотя в 2016 году есть такой день - 29 февраля.
Внесите пожалуйста ясность в мою затуманенную голову.
  • Вопрос задан
  • 2387 просмотров
Решения вопроса 1
DevMan
@DevMan
Но после мне понадобилось временно отключить задачу
Это решается комментированием строки, а не сменой времени.

Но в прошедшее воскресенье, 15 февраля, скрипт заработал. Что это? Это получается если в месяце 29 числа нет, то вместо дня как бы подставляется знак * ? И получается выполнение каждое воскресенье февраля?

Все условия (времени запуска) проверяются по "логическому И", кроме условий "день недели" и "день месяца" — указанные совместно, они обрабатываются по "логическому ИЛИ", то есть "по любому из дней", что отражено в man-странице (Ubuntu, Debian, FreeBSD). Однако, такая логика неочевидна и не позволяет создать условие типа "первый понедельник каждого месяца" или "каждую пятницу в 13 число". Разработчики не изменяют данное поведение, считая его стандартом
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@orange12 Автор вопроса
Спасибо за ответ.

А насчёт комментирования, да, я так и делаю в основном.

Но когда shared хостинг и всё управляется через хостинговую панель, то там зачастую нет такой фишки как отключить задачу. А каждый раз удалять и после при необходимости восстанавливать запись не очень хочется. Вот и делал так как делал.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы