範例場景:
-Linux機器(我認為作業系統不會打擾)。
-OpenSSH伺服器。
-來源大檔案硬碟中,大約2GB(我認為SSD或經典HD也不會打擾)。
- 檔案的目標:a(中速2.0)USB隨身碟(我認為 3.0 甚至 1.0 也不會打擾)。
我要訂購一個簡單的:
cp MyBigFile.iso /media/pendrive
隨身碟插入同一台機器上。
兩種情況:
- 本地外殼(我坐在機器上,然後執行
cp
)命令執行大檔案的副本。 - SSH外殼(我轉到同一 LAN 上的另一台電腦並透過 SSH 用戶端登入)遠端訂購大文件的副本。
期望速度有任何差異有什麼意義嗎?為什麼?
我認為,事實上,當副本包括許多小文件,伺服器和客戶端之間的通訊(對於 SSH shell)可能會增加許多小的延遲(如果您認為我錯了,您也可以隨意修正這個邏輯),但我不確定大的延遲。
(歡迎大家對我的看法發表意見“不打擾”上面的場景也是如此。
答案1
當您 ssh 進入電腦並執行 時cp fromFile toFile
,該副本將完全在遠端電腦上執行。它不透過 ssh 進行通訊來進行複製。事實上,如果沒有任何參數,cp 甚至不會向 ssh 會話報告進度,它只會完成,然後您會看到提示。
如果您正在複製大量小文件,並使用 cp cp -v
,則 cp 將在複製時列印每個文件的名稱。列印名稱將導致透過 ssh 連線進行通訊。如果連接速度較慢,cp 命令列印檔案名稱的速度可能比 ssh 透過網路傳輸檔案名稱的速度要快,並且在列印足夠的檔案名稱後,cp 可能會阻止嘗試寫入標準輸出。
我從未真正見過這種情況發生,磁碟速度一直是限制因素,但我認為理論上這是可能的。