У меня ниже crontab, запланированный на субботу, которая выпадает между 19-23 днями, я не уверен, почему он работал 20-го (пятница). Есть догадки?
00 21 19-23 * 6 <command>
Это выражение 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 день недели против дня месяца?