Рейтинг:0

Crontab - день месяца, кажется, переопределяет день недели?

флаг sa

У меня есть пять серверов, на которых работает кластер хранилища событий. Я хочу запустить команду crontab для каждого в отдельные дни.

  1. Беги в понедельник
  2. Бегать во вторник и т.д

Но я также хочу запускать другую команду на четвертой неделе каждого месяца.

Я настроил их так, думая, что это должно работать, и проверка crontab.guru подтвердила, что, как я думал, должно произойти;

Машины 1-5:

  1. 30 6 1-21 * Пн /первая команда для запуска
  2. 30 6 1-21 * Вт /первая команда для запуска
  3. 30 6 1-21 * Ср /первое выполнение команды
  4. 30 6 1-21 * Чт /первая-выполняемая команда
  5. 30 6 1-21 * Пт /выполнение первой команды

Затем аналогичная команда для каждой команды недели 4:

  1. 30 6 22-29 * пн/неделя4-выполнение команды (повторите ДОУ, как указано выше)

Итак, на сегодня, в пятницу 19-го, я хотел, чтобы только машина № 5 запускала /first-command-to-run в 06:30, а остальные четыре ничего не делали.

Я был вполне уверен, что это сработает, как ожидалось, но, похоже, все пять машины запускали /first-command-to-run сегодня утром, а не только пятничную машину.

Однако ни один из них не запускал команду /week4-to-run, поэтому день месяца, выходящий за пределы диапазона 22-29, правильно предотвращает это.

Теперь мне интересно, если указание диапазона дней месяца приводит к тому, что cron игнорирует день недели. Может ли это быть так? Если нет, то что я делаю неправильно?

ОС Рокки 8.4

(Примечание: я знаю и согласен с тем фактом, что точные дни месяцев могут выпадать за рамки строгих недель.)

Simon Avery avatar
флаг sa
Спасибо @archemar за указатель. Для всех, кто последует, это будет сделано так, как я ожидал: 30 6 1-21 * * [ "$(date --date='Сегодня' '+\%a')" = "Вт" ] && /first-command-to-run
Рейтинг:0
флаг mx

согласно с человек 5 кронтаб на убунту.

Примечание: день выполнения команды можно указать двумя поля – день месяца и день недели. Если оба поля ограничены (т. е. не начинаются с *), команда будет запущена, когда любое поле соответствует текущему времени.

Пожалуйста, проверьте локальную справочную страницу crontab.

Simon Avery avatar
флаг sa
Гах, не знаю, как я пропустил это. Спасибо за ответ, дело точно в этом. Похоже, мне нужно будет сделать более разумную логику в самом сценарии.

Ответить или комментировать

Большинство людей не понимают, что склонность к познанию нового открывает путь к обучению и улучшает межличностные связи. В исследованиях Элисон, например, хотя люди могли точно вспомнить, сколько вопросов было задано в их разговорах, они не чувствовали интуитивно связи между вопросами и симпатиями. В четырех исследованиях, в которых участники сами участвовали в разговорах или читали стенограммы чужих разговоров, люди, как правило, не осознавали, что задаваемый вопрос повлияет — или повлиял — на уровень дружбы между собеседниками.