Cron Job не работает?

У меня есть файл crontab, который выглядит следующим образом:

* * * * * /home/abliskovs/update/update.sh

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

crontab -l выдает следующее:

* * * * * /home/abliskovs/update/update.sh

24
задан 7 January 2012 в 22:18

4 ответа

Добавьте >> / tmp / testlog.log в конец вашей записи в crontab (чтобы перенаправить вывод в файл, который вы можете исследовать, или проверить, работает ли он, дополнительно 2> & 1 будет включать вывод из консоль ошибок)

Пример

0 * * * * /home/abliskovs/update/update.sh 2> & amp; 1 /tmp/testlog.log

Также удостоверьтесь в следующем:

  • Добавьте правильную работу cronjobs. если вы использовали crontab -e в своей учетной записи, сценарии запускаются с вашим пользователем (и, следовательно, запись в crontab имеет на одно поле меньше - пользователь, как известно, запускает его). Если вы просто скопируете приведенный выше фрагмент в /etc/cron.d, произойдет сбой, поскольку вы не указали пользователя (или, скорее, он не найдет пользователя с именем «bash»).
  • Убедитесь, что файл сценария является исполняемым, иначе он не будет его выполнять.
  • Перезагрузить задания cron Перезагрузить службу sudo или перезапустить службу cron sudo /etc/init.d/cron restart

Как сделать файл исполняемым?

Несколько способы сделать ваш файл исполняемым

chmod +x /home/abliskovs/update/update.sh 

chmod -R 0755 /home/abliskovs/update/update.sh

chmod a+x /home/abliskovs/update/update.sh
0
ответ дан 7 January 2012 в 22:18

Убедитесь, что файл сценария является исполняемым {chmod 755}, иначе он не выполнит его

0
ответ дан 7 January 2012 в 22:18

Сценарий оболочки update.sh, вероятно, содержит ошибки, например, некоторые команды, которые не могут быть выполнены, потому что команда не может быть найдена. В этом случае может помочь добавить путь к вашей команде в переменной PATH или добавить ее непосредственно перед вашей командой. Это также помогает указать адрес электронной почты MAILTO, сообщения электронной почты, полученные в результате выполнения Cronjobs, отправляются на этот адрес

PATH=/path/to/your/command:/another/important/path
MAILTO=my_name@my_domain 

. Вы также можете проверить локальный почтовый ящик с помощью mail и файл системного журнала в /var/log/syslog за ошибки. Смотрите также этот связанный вопрос, почему cronjobs может не работать .

0
ответ дан 7 January 2012 в 22:18

Я испытал ту же проблему, и причина для меня состояла в том, что crontab не работал, потому что это не имело разрешения к нему. Я изменил файл и поместил его в /tmpt/output.log

*/5 * * * * /usr/bin/php /home/ubuntu/app/artisan cmd:process-order > /tmp/queue.output

Сообщите мне, работает ли это на Вас.

0
ответ дан 23 November 2019 в 01:21

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

Похожие вопросы: