Почему не работает дублирование, если установлено как задание cron?

У меня проблема с работой 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), но ничего не изменилось.

Есть ли у вас какие-либо предложения по решению проблемы?

2
задан 13 April 2017 в 15:23

1 ответ

Итак, основываясь на комментариях, следует ответ на мой собственный вопрос.

Журнал ошибок

Первым полезным (необходимым) шагом было получение журнала ошибок.

Синтаксис для его получения:

/bin/duply calendar backup > /tmp/duply.log 2> /tmp/duply.error.log

Причина

К счастью, в файлах журналов указано, почему:

duplicity отсутствует. установлен и доступен по пути?

Итак, я добавил в файл 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
0
ответ дан 13 April 2017 в 15:23

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

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