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