Назад | Перейти на главную страницу

Сценарий оболочки RSync не запускается как CRON, работает нормально вручную

У меня есть простой сценарий оболочки, который запускает Rsync. Он работает нормально, если я вызываю его вручную из командной строки, но когда я настраиваю его как задание CRON, я получаю следующую ошибку:

rsync: failed to open exclude file exclude.txt: No such file or directory (2)
rsync error: error in file IO (code 11) at exclude.c(1000) [client=2.6.8]

Я использую в сценарии оболочки следующее:

--exclude-from 'exclude.txt'

Файл существует, и сценарий работает нормально (с учетом исключений) при запуске вручную. Сценарий оболочки, вызываемый заданием CRON, и exclude.txt находятся в одном каталоге.

Весь сценарий, который я пытаюсь запустить, выглядит так:

rsync -avrhgo --exclude-from 'exclude.txt' --progress --stats --delete-excluded -e "ssh -p XXXXX" / XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

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

В качестве альтернативы вы можете cd в правильный каталог изнутри вашего сценария оболочки.