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

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

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

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

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

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

19
задан 8 January 2012 в 00:18

3 ответа

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

Пример

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

Также убедитесь, что следующие:

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

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

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

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

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

chmod a+x /home/abliskovs/update/update.sh
18
ответ дан 25 May 2018 в 15:24

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

3
ответ дан 25 May 2018 в 15:24
  • 1
    Чтобы сделать исполняемый файл, вы также можете запустить chmod +x filename – Stefano Palazzo♦ 21 January 2012 в 22:45

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

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

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

0
ответ дан 25 May 2018 в 15:24

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

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