Я хочу, чтобы мои проекторы включались до открытия торгового центра и выключались, когда торговый центр закрывается. Итак, я создал записи crontab (которые я поместил в /etc/cron.d/mall), но сегодня (Thu Nov 22 18:58:29 EST 2012
текущий date
на этом сервере) сценарий power-off.sh был выполнен в 17:20 (см. отрывок из системного журнала ниже).
В четверг, 22 ноября, я ожидал, что скрипт power-off.sh будет выполнен в 21:20, согласно 4-й строке crontab ниже.
Почему power-off.sh сработал в 17:20? Что не так с моими записями в crontab?
Содержание /etc/cron.d/mall
:
40 9 22-30 Nov Mon-Sat myuser /usr/local/projectors/power-on.sh
40 10 22-30 Nov Sun myuser /usr/local/projectors/power-on.sh
20 18 22-30 Nov Mon-Wed myuser /usr/local/projectors/power-off.sh
20 21 22-30 Nov Thu-Fri myuser /usr/local/projectors/power-off.sh
20 17 22-30 Nov Sat-Sun myuser /usr/local/projectors/power-off.sh
40 9 1-22 Dec Mon-Sat myuser /usr/local/projectors/power-on.sh
40 10 1-22 Dec Sun myuser /usr/local/projectors/power-on.sh
20 21 1-22 Dec Mon-Fri myuser /usr/local/projectors/power-off.sh
20 17 1-22 Dec Sat-Sun myuser /usr/local/projectors/power-off.sh
Отрывок из системного журнала:
$ grep power-off.sh /var/log/syslog
Nov 22 17:20:01 lanner-ubu-c2d CRON[23007]: (myuser) CMD (/usr/local/projectors/power-off.sh)
Я думаю, что он не справится Sat-Sun
из-за этого на странице руководства crontab(5)
:
Names can also be used for the ``month'' and ``day of week'' fields. Use the first three letters of the particular day or month (case doesn't mat‐ ter). Ranges or lists of names are not allowed.
Это означает, что некоторые из ваших строк просто неверны и, вероятно, вызовут неожиданное или, по крайней мере, недокументированное поведение.
Поэтому я предлагаю вам изменить лимиты дней недели на числа.
Из справочной страницы crontab (5):
Примечание. День выполнения команды можно указать в двух полях: день месяца и день недели. Если оба поля ограничены (т. Е. Не *), команда будет запущена, когда одно из полей соответствует текущему времени. Например,
30 4 1,15 * 5
вызовет выполнение команды в 4:30 утра 1 и 15 числа каждого месяца, а также каждую пятницу.