Должен ли я использовать 1,15 или */15 в crontab для запуска команды каждые 15 дней?

По возможности избегайте регулярных выражений. Пример AWK:

index($2, "L") == 1
11
21.11.2020, 07:14
1 ответ

Этот синтаксис 30 15 */15 * *правильный, но он не делает то же самое с этим 30 15 1,15 * *.

Последний будет выполнять команду в 1stи 15thмесяца, так как он имеет фиксированные значения, разделенные запятыми для поля «день месяца».

/определяет шаги, это означает, что */15будет выполняться каждые 15дней, начиная с 1, это означает :1st,16th(для всех месяцев ), а также31th(для любой месяц, имеющий 31 день ).


Как сказано в man crontab(5), значения шага можно использовать вместе с диапазонами. Поэтому, если вы хотите получить тот же результат, используя синтаксис /, вы можете сделать :30 15 1-15/14 * *, что означает 30 15 1,15 * *.

Другой пример, если вы хотите запускать каждые 15 дней, но 5-го и 20-го числа каждого месяца:5-20/15. Конечно, для этого случая читабельнее будет написать 5,20. Но объединение диапазона с шагами позволяет определить начало -конец выполнения с диапазоном.

Для дней 1, 3, 5, 7 и т. д. месяца:*/2

Для дней 2, 4, 6, 8 и т. д. месяца:2-30/2

Для минут(0-59)и часов(0-23)первым допустимым значением является 0, поэтому:0 */2 * * *означает 00:00, 02:00, 04:00и т. д.

15
28.04.2021, 23:03

Теги

Похожие вопросы