Ssh

Rsync 複製失敗(“沒有這樣的文件或目錄”)

  • August 26, 2019

我剛開始學習如何使用 rsync,因為我正在嘗試將文件從一台伺服器複製到另一台伺服器。我正在使用以下命令:

rsync -avzP username@ip.address:/public_html/abc/ /www/abc

輸入其他伺服器的密碼後,我收到以下消息:

stdin: is not a tty 
receiving incremental file list 
rsync: change_dir "/public_html/abc" failed: No such file or directory (2) 
sent 8 bytes 
received 101 bytes  8.72 bytes/sec total size is 0  speedup is 0.00
rsync error: some files/attrs were not transferred (see previous errors) (code 23) at main.c(1655) [Receiver=3.1.1]

但是,目錄 abc 確實存在,我可以瀏覽它等。名稱中沒有空格。

任何想法這可能是由什麼引起的?

您需要添加連接詳細資訊,例如。供 SSH 使用--rsh=ssh

嘗試:

rsync -avzP --rsh=ssh username@ip.address:/public_html/abc/ /www/abc

並確保路徑正確。這些路徑是絕對的還是相對的:/public_html/abc/, /www/abc?

該錯誤來自/public_html/abc遠端系統上沒有目錄這一事實。

根據評論,源目錄實際上位於使用者的主目錄中,而不是路徑/public_html

所以:

rsync -avzP username@ip.address:public_html/abc/ /www/abc

在這裡,我們訪問public_html/abc的是使用者的主目錄,而不是文件系統的根目錄。


警告stdin: is not a tty來自這樣一個事實,即您的 shell 的互動式 shell 啟動文件正在遠端主機(您的~/.bashrc文件,如果您正在使用bash)上被呼叫,並且您正在其中執行一些需要終端的操作。

您可以在遠端機器上編輯 shell 啟動文件,並在靠近頂部的位置插入以下內容:

[ ! -t 0 ] && return

~/.bashrc對於標準輸入流未連接到終端的所有 shell 會話,這將在該點停止執行 eg 。

引用自:https://unix.stackexchange.com/questions/452320