通常我可以使用以下命令將文件從一台計算機複製到另一台計算機
> scp [email protected] ssh [email protected]:/home/user/my_files/* .
對於大數據集來說,這非常慢。
有人告訴我,我正在使用的機器有一個非常快的鏈接,可以使用 wget 訪問。如何使用 wget 執行相同的檔案傳輸?
答案1
netcat
如果這兩台機器之間有快速、安全且穩定的網絡鏈接,則可以使用和的組合tar
,如下所示。
在目標機器上,運作:
nc -l 10000 | tar -C /destination/directory -xzf -
在來源機器上,運作:
tar -cz /source/directory | nc dst-machine-ip-address 10000
請注意,不會使用加密,因此我可以嗅探流量,如果由於任何原因連接斷開,您將不得不重新開始。
就我個人而言,我會跟上rsync
。
答案2
效能SCP可能是由兩個因素造成的:
- 加密的成本對於慢速處理器來說可能太大了,
- 請求單一文件所需的往返次數。
對於大量小文件,則是第二個。我的第一個想法是建議使用sftp,因為它在遠端主機上使用不同的程式。但經過測試後,這給出了類似的性能。
有效的解決方案是使用一個程序,該程序安裝在客戶端和伺服器上,並且僅發送回一個資料流(而不是數千個資料流)。SSH頻道):
如果你有同步在遠端伺服器上(並將其安裝在客戶端上)使用:
rsync -av -e "ssh [email protected]" [email protected]:/home/user/my_files .
否則你可以使用柏油:
ssh -o [email protected] -e none [email protected] \ tar -c /home/user/my_files | tar -x