У меня есть файл crontab, который выглядит так:
* * * * * /home/abliskovs/update/update.sh
Однако, когда я проверяю syslog на наличие доказательств того, что задание выполнено, нет ничего, что могло бы указывать что он когда-либо бежал. Как проверить, работает ли он?
crontab -l
выводит следующее:
* * * * * /home/abliskovs/update/update.sh
Добавьте конец >> / tmp / testlog.log в конец вашей записи crontab (чтобы перенаправить вывод в файл, который вы можете исследовать или проверить, кроме того, 2> & amp; 1 будет включать вывод с консоли ошибок)
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
Убедитесь, что файл сценария является исполняемым {chmod 755}, иначе он не выполнит его
Сценарий оболочки update.sh, вероятно, содержит ошибки, например некоторые команды, которые не могут быть выполнены, потому что команда не может быть найдена. В этом случае это может помочь добавить путь к вашей команде в переменной PATH или добавить ее непосредственно перед вашей командой. Это также помогает указать адрес электронной почты MAILTO, электронные письма, которые являются результатом выполнения Cronjob, отправляются по этому адресу
PATH=/path/to/your/command:/another/important/path
MAILTO=my_name@my_domain
Вы также можете проверить локальный почтовый ящик с помощью mail и файла syslog в /var/log/syslog для ошибок. См. Также этот связанный вопрос, почему cronjobs могут не работать.