При запущении скрипта Perl, поскольку не работает cronjob, в то время как ручной запуск делает задание

У меня есть 3 cronjob записи (crontab -l) первая запись является сценарием Perl, что создает резервное копирование LVM виртуальной машины, и другие два являются просто sh выполнением файлов mysqldump.

Хорошо однако я отредактировал crontab -e как корень (sudo su сначала), и это - мой первый ввод заданий

# Run daily backup of my job at 3:15 [relation ä11]
15 3 * * * perl /opt/AUTO_BACKUP/virt-backup.pl --action=dump --date --vm=SERVER2

Хорошо, но это ни создает вывода в резервном каталоге, ни любых записей в журналах крона. В файлах журнала крона я нашел только записи других sh заданий.

Но когда я копирую команду perl /opt/AUTO_BACKUP/virt-backup.pl --action=dump --date --vm=SERVER2 прямо в корневой терминал это работает как очарование. Таким образом, так как я редактирую crontab как корень только правильный пользователь должен выполнить задание. И также никакие ошибки в журнале.

1
задан 28 January 2016 в 01:00

2 ответа

Изменитесь perl запись в path/to/perl. Часто времена, команды такой как perl и python являются на самом деле основанными на среде вещами и найдены в Вашем ПУТИ. Поскольку крон испытывает недостаток в том ПУТИ, лучше использовать полные пути в crontab.

1
ответ дан 7 December 2019 в 16:02

Причина выполнения сценария, будучи выполняемым от оболочки, но не как cronjob обычно являются другим ENV, который это находит там.

Так изменяют Ваш cronjob для сохранения ENV в, например,/tmp/env при помощи

env | sort> /tmp/env

и когда/tmp/env прибывает разность он с текущим ENV

env | sort | diff - /tmp/env

HTH

0
ответ дан 7 December 2019 в 16:02

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

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