У меня проблема с работой cron, которая начинается, но не завершается. Запуск команды вручную работает нормально. Я уже прочитал страницу о проблемах и решениях cron здесь, в AskUbuntu, попробовал предложенные решения, но не нашел ответа, работающего в моем случае.
Я использую Ubuntu 12.04.
$ crontab -e
SHELL=/bin/bash # otherwise it would be /bin/sh
59 16 * * * /bin/duply calendar backup > /tmp/duply.log
Кстати, файл cron заканчивается пустой строкой, как кто-то указал.
Как только задание «закончено» ...:
$ cat /tmp/duply.log
Start duply v1.5.7, time is 2012-06-22 16:59:01.
Вместо этого, вручную запустив скрипт, он работает правильно и выдает следующий вывод:
Start duply v1.5.7, time is 2012-06-22 17:06:39.
[cut]
... here is a long output generated by duply.
... and yes, files have been backed up.
[cut]
--- Finished state OK at 17:06:42.581 - Runtime 00:00:03.170 ---
Я также пытался перезапустите демон cron (sudo service cron restart
), но ничего не изменилось.
Есть ли у вас какие-либо предложения по решению проблемы?
Итак, основываясь на комментариях, следует ответ на мой собственный вопрос.
Журнал ошибок
Первым полезным (необходимым) шагом было получение журнала ошибок.
Синтаксис для его получения:
/bin/duply calendar backup > /tmp/duply.log 2> /tmp/duply.error.log
Причина
К счастью, в файлах журналов указано, почему:
duplicity отсутствует. установлен и доступен по пути?
blockquote>Итак, я добавил в файл cron то же значение
PATH
, что и в сеансе оболочки, и проблема исчезла. Я не думал, что нужно было добавлятьPATH
в файл crontab, потому чтоPATH
во время задания cron равно/usr/bin:/bin
, и дважды находится в/bin
.Теперь файл crontab начинается с:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games