10

У меня ниже crontab, запланированный на субботу, которая выпадает между 19-23 днями, я не уверен, почему он работал 20-го (пятница). Есть догадки?

00 21 19-23 * 6 <command>

1 ответ1

16

Это выражение Cron переводится как:

At 21:00 on the 19, 20, 21, 22 and 23rd of every month and every Saturday.

Так что он явно сказал, что cron будет работать в пятницу, 20-го. Это из-за:

When the schedule specifies both date and weekday, they're combined with a logical OR,
i.e. the job will run if current_minute == scheduled_minute 
&& current_hour == scheduled_hour && current_month == scheduled_month && 
(current_day == scheduled_date OR current_weekday == scheduled_weekday).

Эта информация взята из этого удобного инструмента Cron:http://crontab.guru/

Чтобы ваша работа выполнялась в определенные дни, когда это суббота, вы можете использовать:

00 21 19-23 * * test $(date +%u) -eq 6 && command

Это решение от crontab день недели против дня месяца?

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .