最近我無法透過 ssh 進行 rsync。每次我都會遇到同樣的錯誤
bash: rsync: command not found
rsync: connection unexpectedly closed (0 bytes received so far) [sender]
rsync error: error in rsync protocol data stream (code 12) at io.c(600) [sender=3.0.6]
我在跑步
sudo rsync -av /var/www/html/somedir/ [email protected]:Users/myuser/Desktop/ec2backup
請注意,出於本文的目的,使用者名稱、IP 和目錄已更改。
過去我曾經執行過與使用 bash_history 驗證的完全相同的命令。
我嘗試過的:
- 從另一台伺服器執行類似的命令,導致相同的錯誤訊息。
- 在本地測試了 rsync(本地目錄到本地目錄),效果完美。
唯一改變的是我最近安裝了 Virtualbox 和 Vagrant。我是否可能搞亂了本機電腦上的身份驗證/連接埠/等?
任何幫助是極大的讚賞。
答案1
999.999.99.9 上未安裝 rsync
答案2
我的問題是我將 cwrsync_6.2.1_x64 與 SSH_for_Windows_7.7p1、LibreSSL 2.6.5 結合使用,該版本預先安裝在 win10 2004 build 19041.685 中。
在 rsync 指令中,您需要指向特定 rsync 版本隨附的 ssh.exe。例如:
rsync -avHz -e "path_to\cwrsync_6.2.1_x64_free\bin\ssh.exe" --partial ...
答案3
當目標目錄不存在時,我收到此錯誤錯誤。對於來源資料檔案:/a/b/c/d/data, rsync -av -e ssh /a/b/c/d/ hostname:/a/b/c/d 需要目標目錄:hostname:/ a/ b/c 預先存在。
在閱讀手冊頁作為最後的手段時,我發現這是預期的行為。
答案4
使用 cygwin,我執行了“which rynsc”,結果是 cygwin 安裝程式提供的 rsync。我之前透過 Cygwin 安裝程式安裝了 rsync。然而,當我從 Cygwin 執行「which ssh」時,它指向 Windows 路徑的 ssh。因此,我退出 Cygwin,執行 cygwin 安裝程式並從 cygwin 安裝 ssh。完成此操作後,我再次執行了之前的兩個命令(rsync 和 ssh),兩個二進位檔案都指向 cygwin 二進位檔案。然後,當我從 cygwin 進行 rsync 時,它完全沒有任何問題。