说明

  scp命令用于在不同主机之间进行复制文件,采用SSH协议来保证复制的安全性。scp命令每次都是全量完整复制,所以效率不高,适合第一次复制的时候使用,增量复制建议使用rsync命令来代替。

格式

  scp [option] [user@host]:file1 [user@host]:file2

常用参数
  • -C:压缩传输
  • -l:指定传输占用的宽度,单位Kbit/s
  • -P port:大写P指定传输的端口号
  • -p:小写p,传输后保留文件的原始属性
  • -q:不显示传输进度条
  • -r:递归复制整个目录
示例
1、从本地服务器复制文件到远程服务器
[root@localhost ~]# scp test.zip 192.168.71.107:/tmp
root@192.168.71.107s password: 
test.zip                                                            100% 2245     2.2KB/s   00:00

2、从本地服务器复制目录到远程服务器(-r参数)
[root@localhost ~]# scp -r test 192.168.71.107:/tmp
root@192.168.71.107s password: 
test_01.txt                                              100%   11     0.0KB/s   00:00    
test_02.txt                                              100%    0     0.0KB/s   00:00    
test_03.txt                                              100%    0     0.0KB/s   00:00    
test_04.txt                                              100%    0     0.0KB/s   00:00    
test_05.txt                                              100%    0     0.0KB/s   00:00    
test_06.txt                                              100%    0     0.0KB/s   00:00    
test_07.txt                                              100%    0     0.0KB/s   00:00    
test_08.txt                                              100%    0     0.0KB/s   00:00    
test_09.txt                                              100%    0     0.0KB/s   00:00    
test_10.txt                                              100%    0     0.0KB/s   00:00    
test_11.txt                                              100%    0     0.0KB/s   00:00    
test_12.txt                                              100%    0     0.0KB/s   00:00    
test.txt                                                 100%    0     0.0KB/s   00:00    
services                                                 100%  655KB 654.6KB/s   00:00    
services.zip                                             100%  133KB 133.0KB/s   00:00 


3、使用-p参数,保留源文件的属性
[root@localhost ~]# scp -p test.zip 192.168.71.107:/tmp
root@192.168.71.107s password: 
test.zip                                     100% 2245     2.2KB/s   00:00


4、从远程服务器将数据复制到本地服务器
[root@localhost tmp]# scp 192.168.71.107:/tmp/test.zip . #拉取文件到当前目录
root@192.168.71.107s password: 
test.zip                                                   100% 2245     2.2KB/s   00:00    
[root@localhost tmp]# ll
total 4
-rw-r--r--. 1 root root 2245 May 14 18:53 test.zip
[root@localhost tmp]# scp -r 192.168.71.107:/tmp/test .#拉取目录到当前目录
root@192.168.71.107s password: 
test_01.txt                                                100%   11     0.0KB/s   00:00    
test_02.txt                                                100%    0     0.0KB/s   00:00    
test_03.txt                                                100%    0     0.0KB/s   00:00    
test_04.txt                                                100%    0     0.0KB/s   00:00    
test_05.txt                                                100%    0     0.0KB/s   00:00    
test_06.txt                                                100%    0     0.0KB/s   00:00    
test_07.txt                                                100%    0     0.0KB/s   00:00    
test_08.txt                                                100%    0     0.0KB/s   00:00    
test_09.txt                                                100%    0     0.0KB/s   00:00    
test_10.txt                                                100%    0     0.0KB/s   00:00    
test_11.txt                                                100%    0     0.0KB/s   00:00    
test_12.txt                                                100%    0     0.0KB/s   00:00    
test.txt                                                   100%    0     0.0KB/s   00:00    
services                                                   100%  655KB 654.6KB/s   00:00    
services.zip                                               100%  133KB 133.0KB/s   00:00    
[root@localhost tmp]# ll
total 8
drwxr-xr-x. 2 root root 4096 May 14 18:53 test
-rw-r--r--. 1 root root 2245 May 14 18:53 test.zip

总结:在复制的过程中,最好带上-p参数,保持文件的属性不变。scp复制,尽管本地已经有一样的文件,当时还是会消耗带宽来复制文件,所以scp是全量复制。