Как мне отформатировать пользовательские crontabs в /etc/cron.d/?
Насколько я понимаю, я могу добавить системные задания с простым расписанием /etc/cron.hourly/
, /etc/cron.daily/
и так далее, и системные задания с пользовательскими расписаниями для /etc/cron.d/
,
Но в большом ИТ-отделе, где несколько человек могут присматривать за сервером, каталог /etc/cron.d, вероятно, является лучшим местом для установки crontabs - это центральная точка и экономит их поиск! (CronHowTo)
Я создал /etc/cron.d/testing
со следующим содержанием:
# /etc/cron.d/testing: crontab entries for report generation
SHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
15 13 * * 3 root /usr/bin/supervisorctl start reports
00 16 * * 4 root /usr/bin/supervisorctl start reports
Файл имеет следующие свойства:
user@server:/etc/cron.d$ ls -la
total 28
drwxr-xr-x 2 root root 4096 Jul 14 12:57 .
drwxr-xr-x 146 root root 12288 Jul 14 13:48 ..
-rw-r--r-- 1 root root 188 Feb 20 2014 anacron
-rw-r--r-- 1 root root 102 Feb 9 2013 .placeholder
-rwxr--r-- 1 root root 286 Jul 14 13:43 testing
Я перезагрузил машину в 13:00 в четверг, ожидая, что она сработает в 13:15. (План состоял в том, чтобы протестировать этот вызов, но также запланировать его на 16:00 каждую пятницу.)
Но ничего не случилось. Нет ошибки (или какого-либо события) в /var/log/syslog
или журналы супервизора. Я использую ту же команду в /etc/cron.daily/testing
и это работает:
#!/bin/sh
/usr/bin/supervisorctl start reports
... и я могу вызывать работу супервизора самостоятельно. Поэтому я не думаю, что проблема в работе супервизора или в моем вызове.
Что я делаю неправильно? (И где проблема регистрируется?)
1 ответ
Формат, используемый для файла crontab /etc/cron.d/testing
верно. (Должно быть, это было скопировано с /etc/cron.d/anacron
)
Проблема заключалась в том, что я изменил его из Windows и, возможно, испортил окончания строк. Я повторно клонировал anacron
отредактировал его на Ubuntu, и все заработало.
(Я до сих пор не знаю, где было зарегистрировано сообщение об ошибке, если оно было.)