Как написать выражение cron для задания, которое не должно выполняться только в последний понедельник месяца

Как написать выражение cron для задания, которое не должно выполняться только в последний понедельник месяца

Мое требование -

  • Я запланирую задание с помощью выражения cron.
  • Задание запланировано и выполняется каждое утро понедельника в 00:05 месяца.
  • И он должен проходить в последний понедельник месяца.

Пример: Предположим, в этом месяце я запланировал работу на 3, 10, 17, 24 число. Я ожидаю, что 24-я работа не должна выполняться только 3, 10, 17 числа, аналогично для всего месяца.

решение1

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

* * * * *

Это показано в файле, /etc/crontabно для ясности звездочки обозначают (слева направо):

минута час день месяца месяц день недели

Прямо сейчас у вас установлено это для этих дат, но вы, очевидно, не хотите этого, потому что эти даты не всегда будут понедельником. Чтобы получить то, что вы хотите, используйте следующее:

5 0 * * MON user command

Это позволит запускать задание через 5 минут после полуночи или (в 12:05 или 00:05) каждый понедельник независимо от того, какое сегодня число.

Связанный контент