Назад | Перейти на главную страницу

Crontab: не работает должным образом

(ОС - FreeBSD 8.1)

Вчера я добавил в crontab с правами root две строки:

0 7 * * * curl --silent http://username:pass@dev.mydomain.tld/cron/execute/process/verbose/true >>/home/www/dev_mydomain_tld/logs/cron_process.log 2>&1
0 8 * * * curl --silent http://username:pass@dev.mydomain.tld/cron/execute/process/verbose/true >>/home/www/dev_mydomain_tld/logs/cron_process.log 2>&1

Выполнение команды прямо из оболочки с правами root работает нормально. Он просто делает кое-что и рассылает электронные письма. Второй запуск не должен отправлять электронные письма, это обрабатывается скриптом. Таким образом, вторая строка предназначена только для моего удовольствия от тестирования, чтобы убедиться, что второй запуск не отправляет те же электронные письма.

Этим утром я ждал электронных писем в 7 и 8 утра - но нет.

Журнал cron сообщает мне следующее:

Feb  8 07:00:00 webserver /usr/sbin/cron[50878]: (root) CMD (   /usr/local/bin/bsdsar_gather)
Feb  8 07:00:00 webserver /usr/sbin/cron[50881]: (root) CMD (newsyslog)
Feb  8 07:00:00 webserver /usr/sbin/cron[50882]: (root) CMD (/usr/libexec/atrun)
Feb  8 07:00:00 webserver /usr/sbin/cron[50883]: (operator) CMD (/usr/libexec/save-entropy)
Feb  8 07:00:00 webserver /usr/sbin/cron[50886]: (root) CMD (curl --silent http://username:pass@dev.mydomain.tld/cron/execute/process/verbose/true >>/home/www/dev_mydomain_tld/logs/cron_process.log 2>&1)

[...]

Feb  8 08:00:00 webserver /usr/sbin/cron[51147]: (root) CMD (   /usr/local/bin/bsdsar_gather)
Feb  8 08:00:00 webserver /usr/sbin/cron[51149]: (root) CMD (newsyslog)
Feb  8 08:00:00 webserver /usr/sbin/cron[51150]: (operator) CMD (/usr/libexec/save-entropy)
Feb  8 08:00:00 webserver /usr/sbin/cron[51151]: (root) CMD (/usr/libexec/atrun)
Feb  8 08:00:00 webserver /usr/sbin/cron[51152]: (root) CMD (curl --silent http://username:pass@dev.mydomain.tld/cron/execute/process/verbose/true >>/home/www/dev_mydomain_tld/logs/cron_process.log 2>&1)

Также /home/www/dev_mydomain_tld/logs/cron_process.log не показали изменений, также без изменения даты. Запуск из оболочки обновляет его просто отлично.

Curl указан в пути, заданном cron? Вы должны либо указать свой PATH в сценарии, либо использовать полный путь к curl (например, / usr / local / bin / curl или аналогичный).

Посмотри на crontab (5) для получения подробной информации о переменных окружения.

Главный системный crontab, к которому root имеет доступ (/ etc / crontab), должен иметь имя пользователя в шестом столбце. (Файлы crontab обычных пользователей этого не делают)