scp命令
用于在不同的主機之間復制文件,它采用SSH協議來保證復制的安全性。scp命令每次都是全量完整復制,因此效率不高,適合第一次復制時使用,增量復制建議使用rsync命令替代。
scp [option] ?? ?[[user@]host1:]file? ? [[user@]host2:]file2
scp?[選項]?? ?? ?[用戶@主機1:文件1]?? ??? [用戶@主機2;文件2]
scp命令的參數選項及說明
-C?? ??? ?壓縮傳輸
-l?? ??? ?指定傳輸占用的帶寬,單位Kbit/s
-P port ??大寫的P,指定傳輸的端口號
-p?? ??? ?小寫的p,傳輸后保留文件原始屬性
-q?? ??? ?不顯示傳輸進度條
-r?? ??? ?遞歸復制整個目錄
[root@cs6 ~]# ll -h /etc/services #<==這是將要復制的文件。 -rw-r--r--. 1 root root 626K Mar 22 2017 /etc/services [root@cs6 ~]# scp /etc/services 10.0.0.55:/tmp #<==scp 傳送的文件名目標主機IP地址:想要傳到的目錄。 The authenticity of host '10.0.0.55 (10.0.0.55)' can't be established. RSA key fingerprint is 29:a1:b8:14:6d:10:4c:c4:34:d3:8b:06:4b:a5:27:46. Are you sure you want to continue connecting (yes/no)? yes Warning: Permanently added '10.0.0.55' (RSA) to the list of known hosts. root@10.0.0.55's password: services 100% 626KB 626.0KB/s 00:00 [root@cs7-mini ~]# ll /tmp/services #<==遠程主機 -rw-r--r--. 1 root root 641020 May 14 13:00 /tmp/services #<==可以看到賦值后的文件時間有變化,更新為現在了。[root@cs6 ~]# scp -p /etc/services 10.0.0.55:/tmp #<==使用-p選項保持文件屬性傳輸。 root@10.0.0.55's password: services [root@cs7-mini ~]# ll -h /tmp/services -rw-r--r--. 1 root root 626K Mar 22 2017 /tmp/services100% 626KB 626.0KB/s 00:00 [root@cs6 ~]# scp -p /tmp 10.0.0.55:/tmp #<==不能直接復制目錄。 root@10.0.0.55's password: /tmp: not a regular file [root@cs6 ~]# scp -pr /tmp 10.0.0.55:/tmp #<==使用—r選項復制目錄,選項記憶方法:人品rp。 root@10.0.0.55's password: anaconda-ks.cfg 100% 1092 1.1KB/s 00:00 install.log 100% 8081 7.9KB/s 00:00 yum.log 100% 0 0.0KB/s 00:00 ....... 5.html 100% 0 0.0KB/s 00:00 3.html 100% 0 0.0KB/s 00:00 6.html 100% 0 0.0KB/s 00:00 10.html 100% 0 0.0KB/s 00:00 1.html 100% 0 0.0KB/s 00:00 8.html 100% 0 0.0KB/s 00:00 services.zip 100% 124KB 124.4KB/s 00:00 services 100% 626KB 626.0KB/s 00:00
推送(從本地服務器復制到遠程服務器)文件或目錄?
從遠程服務器將數據復制到本地服務器(拉取)。 [root@cs6 tmp]# scp 10.0.0.55:/etc/services . root@10.0.0.55's password: services
從上面的實驗中還可以看到,本地服務器本身即使有這些文件,但是還會再消耗帶寬來復制文件,因此也證明了scp是全量復制。