ssh tar 加速遠端拷貝

2021-09-30 09:05:15 字數 1069 閱讀 5784

在遠端拷貝目錄(尤其是包含很多小檔案的目錄)的時候,使用 scp 命令顯得十分無力。對於這種情況,通常我們會先用 tar 命令進行打包,然後使用 scp 命令進行拷貝,這樣固然可以大幅度提高速度,不過這將經歷以下步驟(這將帶來很大的額外開銷:紅色標記的步驟):

在源機器上打包

使用 scp 進行遠端拷貝

在目標機器上解包

刪除兩台機器上的包

我們可以使用 ssh 和 tar 命令的組合來完成這一操作,同時最大程度上減小額外開銷,提高拷貝效率。

比如,我們需要從 10.10.0.1 拷貝目錄 /home/anke/test 到當前機器的 /tmp 目錄,可以使用以下命令:

ssh [email protected] "cd /home/anke; tar zcf - test" | tar zxf - -c /tmp

同樣,如果我們想把 /tmp/test 目錄拷貝回去,可以使用以下命令:

cd /tmp

tar zcf - test | ssh [email protected] tar zxf - -c /home/anke

我把幾種不同的遠端拷貝策略進行了乙個

對比(測試的目錄大小為 607m ,共有 7394 個小檔案組成),測試結果如下:

使用方案

耗時直接scp

8m27s

tar打包 + scp拷貝

打包:0m17s  拷貝:0m15s

ssh + tar

0m19s

由上表可見,ssh + tar 拷貝在速度的提公升上效果是很明顯的,「直接 scp」 就不說了,「tar打包 + scp拷貝」方案即使沒有考慮解包和刪包也是要比 」ssh + tar「方案慢的。

另外,對於大檔案來說,尤其是壓縮比較高的大檔案,也可以使用這種方法來實現加速拷貝。

linux 遠端拷貝

scp root 10.5.0.1 root firewall.tar.gz scp home cheney full.tar.gz root 10.5.0.1 home root scp r root 10.5.0.1 mail 拷貝整個目錄下的所有檔案 需要輸入相應的使用者名稱和密碼 scp是有...

遠端拷貝檔案

1 拷貝本機 home administrator test整個目錄至遠端主機192.168.1.100的 root目錄下 複製 如下 scp r home administrator test root 192.168.1.100 root 複製 如下 scp home administrator...

SCP遠端拷貝

linux 的 scp 命令 可以 在 linux 之間複製 檔案 和 目錄 scp 命令 scp 可以在 2個 linux 主機間複製檔案 命令基本格式 scp 可選引數 file source file target 從 本地 複製到 遠端 複製檔案 命令格式 scp local file re...