Ssh
Rsync 複製失敗(“沒有這樣的文件或目錄”)
我剛開始學習如何使用 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 。