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

Я добавил это в / etc / crontab в несколько разных систем linux и freebsd:

# monthly reboot: 3rd Tuesday of every month 56 07 15-21 * 2 root /sbin/shutdown -r now 

Я хочу перезагружать 3-й ВТОРНИК каждого месяца. Тем не менее, все системы перезагрузились в третью среду этого месяца (19-е).

Что я делаю не так?

Обновление : благодаря приведенному ниже ответам Ranon, похоже, что приведенная ниже ревизия будет работать, может ли кто-нибудь подтвердить или есть еще лучший способ сделать это?

 # monthly reboot: 3rd Tuesday of every month 56 07 15-21 * * root test $(date +\%u) -eq 2 && /sbin/shutdown -r now 

Посмотрите на man 5 crontab .

Примечание. День выполнения команды может быть задан двумя полями – днем ​​месяца и днем ​​недели. Если оба поля ограничены (т. Е. Не являются *), команда будет выполняться, когда любое поле совпадает с текущим временем. Например, “ 30 4 1,15 * 5 '' заставит команду запускаться в 4:30 утра 1 и 15 числа каждого месяца плюс каждую пятницу. Тем не менее, можно добиться желаемого результата, добавив тест к команде (см. Последний пример в примере ПРИМЕР CRON FILE ниже).

Поэтому ваши серверы должны перезапускаться каждый день с 15-21 и каждый вторник.

Посмотрите пример manpages:

 # Run on every second Saturday of the month 0 4 8-14 * * test $(date +%u) -eq 6 && echo "2nd Saturday" 
Давайте будем гением компьютера.