Cron - не выполняет команду каждые 10 минут

Я не понимаю, почему Cron не выполняет команду каждые 10 минут.

в crontab -e Я добавил:

*/10 * * * * /var/www/myproject/recording/batch.pl

Я видел в журнале cron, что он запускается каждые 10 минут:

Mar 17 10:50:01 host crond[26335]: (root) CMD (/var/www/myproject/recording/batch.pl)
Mar 17 11:00:01 host crond[26357]: (root) CMD (/var/www/myproject/recording/batch.pl)
Mar 17 11:10:01 host crond[26418]: (root) CMD (/var/www/myproject/recording/batch.pl)
Mar 17 11:20:01 host crond[26657]: (root) CMD (/var/www/myproject/recording/batch.pl)

но на самом деле это не выполнение команды.

Когда я выполняю эту команду вручную в консоли Linux, она работает нормально.

3 ответа

Решение

Как насчет настройки вашего crontab, как это

*/10 * * * * /usr/bin/perl /var/www/myproject/recording/batch.pl 2>&1 | tee -a /var/log/myproject-recording-batch.log

затем вы можете привязать файл журнала /var/log/myproject-recording-batch.log, чтобы отслеживать

Как сказал CloudWeavers, в большинстве случаев речь идет об отсутствующей переменной среды. Чтобы проверить, чего именно не хватает, вы можете отредактировать cronjob, чтобы записывать все его стандартные выходные данные / ошибки в файл журнала, чтобы вы могли просмотреть его, чтобы получить то, что его останавливает:

*/10 * * * * /var/www/myproject/recording/batch.pl &> output.log

CRON не наследует все переменные окружения. Некоторое программное обеспечение должно быть вызвано вручную (то есть: вызов ifconfigили же /sbin/ifconfig не равно, если у вас нет действительной переменной окружения $PATH).

Также убедитесь, что он исполняемый и что ваш шебанг правильно определен (в противном случае вам придется добавить команду к интерпретатору).

Другие вопросы по тегам