linux中scp命令使用技巧詳解 傳輸速度

2021-08-01 06:28:21 字數 3497 閱讀 4455

解,希望此方法對大家會幫助。

scp 命令 

scp 可以在 2個 linux 主機間複製檔案;

命令基本格式: 

scp [可選引數] file_source file_target

*****= 

從 本地 複製到 遠端 

*****= 

* 複製檔案: 

* 命令格式: 

scp local_file remote_username@remote_ip:remote_folder 

或者 scp local_file remote_username@remote_ip:remote_file 

或者 scp local_file remote_ip:remote_folder 

或者 scp local_file remote_ip:remote_file

第1,2個指定了使用者名稱,命令執行後需要再輸入密碼,第1個僅指定了遠端的目錄,檔案名字不變,第2個指定了檔名; 

第3,4個沒有指定使用者名稱,命令執行後需要輸入使用者名稱和密碼,第3個僅指定了遠端的目錄,檔案名字不變,第4個指定了檔名; 

* 例子: 

scp /home/space/music/1.*** [email protected]:/home/root/others/music 

scp /home/space/music/1.*** [email protected]:/home/root/others/music/001.*** 

scp /home/space/music/1.*** www.cumt.edu.cn:/home/root/others/music 

scp /home/space/music/1.*** www.cumt.edu.cn:/home/root/others/music/001.***

* 複製目錄: 

* 命令格式: 

scp -r local_folder remote_username@remote_ip:remote_folder 

或者 scp -r local_folder remote_ip:remote_folder

第1個指定了使用者名稱,命令執行後需要再輸入密碼; 

第2個沒有指定使用者名稱,命令執行後需要輸入使用者名稱和密碼; 

* 例子: 

scp -r /home/space/music/ [email protected]:/home/root/others/ 

scp -r /home/space/music/ www.cumt.edu.cn:/home/root/others/

上面 命令 將 本地 music 目錄 複製 到 遠端 others 目錄下,即複製後有 遠端 有 ../others/music/ 目錄

*****= 

從 遠端 複製到 本地 

*****= 

從 遠端 複製到 本地,只要將 從 本地 複製到 遠端 的命令 的 後2個引數 調換順序 即可;

例如: 

scp [email protected]:/home/root/others/music /home/space/music/1.*** 

scp -r www.cumt.edu.cn:/home/root/others/ /home/space/music/

最簡單的應用如下 :

scp 本地使用者名 @ip 位址 : 檔名 1 遠端使用者名稱 @ip 位址 : 檔名 2

[ 本地使用者名 @ip 位址 :] 可以不輸入 , 可能需要輸入遠端使用者名稱所對應的密碼 .

可能有用的幾個引數 :

-v 和大多數 linux 命令中的 -v 意思一樣 , 用來顯示進度 . 可以用來檢視連線 , 認證 , 或是配置錯誤 .

-c 使能壓縮選項 .

-p 選擇埠 . 注意 -p 已經被 rcp 使用 .

-4 強行使用 ipv4 位址 .

-6 強行使用 ipv6 位址 .

注意兩點:

1.如果遠端伺服器防火牆有特殊限制,scp便要走特殊埠,具體用什麼埠視情況而定,命令格式如下:

#scp -p 4588 [email protected]:/usr/local/sin.sh /home/administrator

2.使用scp要注意所使用的使用者是否具有可讀取遠端伺服器相應檔案的許可權。

加速scp傳輸速度

結論宣告:這裡給出的測試資料不具有一般性,僅供參考。測試與資料本身特性有很大關係,本文使用innodb的redo log作為測試資料。

* 改變ssh加密演算法,可以讓速度更快;通常,越弱的加密演算法,速度越快

* 通常壓縮會降低scp速度,但這與資料型別有很大關係,對壓縮率非常高的資料啟用壓縮,可以加速

* 壓縮級別對傳輸效率影響很小

* 用於完整性校驗的不同mac( message authentication code)演算法,對效能約有10%-20%的影響。

所以,簡單嘗試如下,讓你的scp速度double一下:

scp -r -c arcfour128 ...

scp -r -c aes192-cbc ...

scp -r -c arcfour128 -o "macs [email protected]" ... 注:啟用壓縮使用引數: -o "compression yes"

2. 測試資料:加密演算法和壓縮的影響

這裡對比了12種ssh中實現的加密演算法和是否使用壓縮的傳輸效率,測試檔案使用的是innodb的1gb*4的日誌檔案(注意:不同型別的檔案測試結果會很不同),這裡縱座標單位為mb/s,資料分為壓縮傳輸和不壓縮傳輸兩組:

原始資料:scp_speed.txt

可以看到,不同加密演算法傳輸速度相差很大;使用了壓縮之後,速度下降很多,也看到不同加密演算法加密後區別並不大。

3. 關於是否啟用壓縮

* 壓縮只有在網路傳輸速度非常慢,以致於壓縮後節省的傳輸時間大於壓縮本身的時間,這時才有效果,所以是否啟用壓縮,需要實際測試

* 通常建議,傳輸前先壓縮,而不是使用ssh的壓縮;建議使用pigz/lbizp2等並行壓縮工具

* 資料中大量重複、空洞,這類適合壓縮的資料,可以嘗試壓縮選項,例如如下是一組,大量"空洞"資料的測試:

看到,壓縮大大提高了傳輸效率

4. "壓縮級別"對傳輸速度影響不大

最後一組對比是,將壓縮級別從1改到9,對比傳輸速度,縱座標單位mb/s,對12種加密演算法分別使用了測試9個壓縮級別,資料如下:

大圖鏈結 原始資料:scp-compression-level.txt

可以看到,壓縮級別對傳輸影響較小。ssh使用的預設壓縮級別是6。

5. 測試資料:完整性校驗演算法macs選擇

通過選項macs可以設定對應的雜湊演算法,man ssh_config可以看到支援哪些雜湊演算法。這裡對了比了12中加密演算法下使用不用的完整性校驗演算法的效能情況:

看到,絕大數情況下"[email protected]"(關於此雜湊)效能都更好,所以建議嘗試使用此雜湊演算法做驗證,看看你的場景下速度是否與提公升。也可以看到,預設的hmac-md5雜湊在預設的加密aes128-ctr下表現比較好;

Linux中scp 命令使用

scp是secure copy的簡寫 一般用於在linux下進行遠端拷貝檔案,可以在linux伺服器之間複製檔案和目錄。命令格式 scp 引數 原路徑 目標路徑 例如複製檔案 可以指定使用者名稱也可以不指定,可以覆蓋目標檔案 scp local file remote username remote...

Linux下scp命令的使用

scp secure copy安全拷貝縮寫 實現linux作業系統下檔案的安全拷貝 在80.86下將80.85的 home test.c檔案拷到當前目錄下 scp root 10.192.80.85 home test.c 在80.86上將當前目錄的test.c檔案拷貝到80.85的 home目錄下...

Linux下的scp命令使用

scp命令用於不同linux伺服器之間的複製 方法如下 scp r filename 127.1.1.0 filename r選項是複製目錄時用的,如果只是乙個檔案去掉 r選項即可,filename代表的是你要複製的檔案的路徑,127.1.1.0代表的是另一台機器的ip位址,同樣filename代表...