cronjob не может найти файл сценария

У меня есть сценарий (buphomebasis.sh) это использует rsync для создания резервных копий из моего корневого каталога. Его содержание:

sudo rsync -avz /home /media/myname/mybackupdsk

Это работает очень хорошо, только путем вызова того сценария от командной строки. Теперь я сделал cronjob (backup.sh); его содержание:

SHELL=/bin/bash
45 5 * * * buphomebasis.sh

Это должно сделать резервное копирование каждый день в 5:45. Оба сценария находятся в моем home/myname/cronjobs/ каталог, но выполнение backup.sh результаты в следующем сообщении об ошибке:

cronjobs/backup.sh: regel 23: 45: opdracht niet gevonden

или на английском языке:

cronjobs/backup.sh: line 23: 45: command not found

Кто-либо может помочь мне с тем, что такое несправедливость/пропавшие без вести в этом cronjob?

3
задан 7 November 2017 в 21:59

3 ответа

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

Так, у Вас была бы запись крона, любят, следует:

45 5 * * * /home/myname/cronjobs/buphomebasis
3
ответ дан 1 December 2019 в 16:18

Примечание: Замените все случаи $USER с Вашим фактическим именем пользователя.

Необходимо использовать полный путь, или иначе задание Крона не сможет найти его. Необходимо поместить что-то как

SHELL=/bin/bash
45 5 * * * /home/$USER/buphomebasis.sh

в Вашем crontab для него для выполнения. Также необходимо удостовериться, что сценарий является исполняемым файлом, так убедиться иметь #!/bin/bash в начале Вашего сценария. Затем сделайте это исполняемым файлом с chmod +x /home/$USER/buphomebasis.sh.

Я рекомендую записать сценарий как:

#!/bin/bash
rsync -avz /home /media/myname/mybackupdsk >> /home/$USER/backup.log

таким образом, Вы видите, имеет ли rsync какие-либо ошибки. Кроме того, убедиться вставить его root crontab, таким образом, это может работать без пароля, или иначе это перестанет работать. Можно отредактировать корень crontab с

sudo crontab -u root -e
0
ответ дан 1 December 2019 в 16:18

Вы используете sudo crontab -e или просто crontab -e когда Вы вносите свои изменения? Каждый добавит его к crontab Вашего пользователя другому к корню.

Полный путь не причинил бы боль также

0
ответ дан 1 December 2019 в 16:18

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

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