Ssh
RSync shell 腳本無法作為 CRON 執行,手動執行良好
我有一個執行 Rsync 的簡單 shell 腳本。如果我從命令行手動呼叫它,它執行良好,但是當我將它設置為 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]
我在 shell 腳本中使用以下內容:
--exclude-from 'exclude.txt'
該文件存在並且腳本在手動執行時執行良好(尊重排除項)。CRON 作業呼叫的 shell 腳本和 exclude.txt 位於同一目錄中。
我嘗試執行的整個腳本如下所示:
rsync -avrhgo --exclude-from 'exclude.txt' --progress --stats --delete-excluded -e "ssh -p XXXXX" / XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX
您需要指定排除文件的完整路徑,因為腳本的工作目錄不會自動成為您啟動腳本的目錄,而是 cron 作業所有者的主目錄。
或者,您可以
cd
從 shell 腳本中進入正確的目錄。