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).
Также убедитесь, что он исполняемый и что ваш шебанг правильно определен (в противном случае вам придется добавить команду к интерпретатору).