scp -3 不再起作用

scp -3 不再起作用

我正在嘗試在兩個遠端主機(都位於不同的子網路上)之間傳輸大檔案。我發現這個命令第一次可以工作:

scp -3 root@foo:/path/to/largefile user@bar:/path/to/where/it/should/go/

該命令第一次起作用,現在當我嘗試再次運行它來傳輸其他文件時,它永遠不會傳輸。相反-v,我收到輸入密碼的提示,然後它以退出代碼 1 退出。

debug1: Sending command: scp -v -f /run/sr-mount/3e3a905f-28ad-01b4-d50a-1ffe151ed28a/debian-8.8.0-amd64-CD-1.iso
Sending file modes: C0644 660602880 debian-8.8.0-amd64-CD-1.iso
Sink: C0644 660602880 debian-8.8.0-amd64-CD-1.iso
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: client_input_channel_req: channel 0 rtype [email protected] reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 2480, received 2372 bytes, in 0.1 seconds
Bytes per second: sent 32882.6, received 31450.6
debug1: Exit status 1
debug1: client_input_channel_req: channel 0 rtype exit-status reply 0
debug1: channel 0: free: client-session, nchannels 1
debug1: fd 0 clearing O_NONBLOCK
debug1: fd 1 clearing O_NONBLOCK
Transferred: sent 2904, received 2964 bytes, in 3.3 seconds
Bytes per second: sent 893.5, received 912.0
debug1: Exit status 1

有人能告訴我為什麼這個指令突然不再運作了嗎?我檢查了/var/log/syslog並沒有發現任何東西..

答案1

您可以使用-vvv從日誌中獲取更多資訊。但問題-3是您無法合理地從遠端獲取有關錯誤的任何調試資訊(帶有補丁的上游錯誤)。錯誤訊息從一側發送到另一側,並且沒有地方顯示它們(不會引入一些複雜性)。

要了解可能出現的問題,最簡單的方法可能是確保原始檔案可以正確讀取(並且名稱中沒有拼寫錯誤)並且目標資料夾可寫,有足夠的磁碟空間等等:

ssh root@foo stat /path/to/largefile
ssh user@bar stat /path/to/where/it/should/go/

另一種可能性是從原始碼建立 OpenSSH 並應用上面連結的補丁。它應該在客戶端中列印錯誤(僅在您的電腦上執行此操作就足夠了)。

或直接使用rsync,這更適合效能、吞吐量和可用性。

相關內容