Ssh

RSync shell 腳本無法作為 CRON 執行,手動執行良好

  • October 4, 2011

我有一個執行 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 腳本中進入正確的目錄。

引用自:https://serverfault.com/questions/318346