Linux SCP命令详解

我们熟悉的CP命令只能适合当前VPS服务器的目录之间的复制转移,SCP可以进行服务器之间的远程拷贝文件,而且速度更快,而且传输过程是加密的。

第一、SCP基本用法
scp [参数] [原路径] [目标路径]  
第二、SCP常用参数及说明备注
-1  强制scp命令使用协议ssh1
-2  强制scp命令使用协议ssh2
-4  强制scp命令只使用IPv4寻址
-6  强制scp命令只使用IPv6寻址
-B  使用批处理模式(传输过程中不询问传输口令或短语)
-C  允许压缩。(将-C标志传递给ssh,从而打开压缩功能)
-p 保留原文件的修改时间,访问时间和访问权限
-q  不显示传输进度条
-r  递归复制整个目录
-v 详细方式显示输出。scp和ssh(1)会显示出整个过程的调试信息。这些信息用于调试连接,验证和配置问题
-c cipher  以cipher将数据传输进行加密,这个选项将直接传递给ssh
-F ssh_config  指定一个替代的ssh配置文件,此参数直接传递给ssh
-i identity_file  从指定文件中读取传输时使用的密钥文件,此参数直接传递给ssh
-l limit  限定用户所能使用的带宽,以Kbit/s为单位。
-o ssh_option  如果习惯于使用ssh_config(5)中的参数传递方式,
-P port  注意是大写的P, port是指定数据传输用到的端口号
-S program  指定加密传输时所使用的程序。此程序必须能够理解ssh(1)的选项
第三、SCP命令常见用法实例
  • A - 复制当前文件到远程服务器目录
scp [当前文件] [远程服务器用户@远程服务器IP]:[远程服务器目录]  
#示范:
scp test.txt root@121.54.xxx.xxx:/tmp/  

解释:将当前VPS服务器当前目录中的test.txt文件远程拷贝送至121.54.xxx.xxx服务器/tmp/目录中。

执行过程中我们需要先确定yes/no,是否执行转移,这里我肯定输入yes然后回车,然后提示需要输入远程服务器的ROOT用户名密码,然后执行拷贝。

  • B - 复制当前文件夹/目录到远程服务器目录
scp -r [当前服务器网站目录/文件夹] [root@远程服务器IP地址]:[远程服务器目录]  
#示范案例:
scp -r /root/mini/ root@121.54.xxx.xxx:/root/tmp  

解释:将当前目录中的/mini/文件夹所有内容,拷贝至远程服务器中的/root/tmp/目录中。

在执行过程中需要我们输入远程服务器的ROOT密码然后回车就执行,会根据我们文件数据的多少以及之间的传输速度决定需要多久才能传输完毕。

  • C - 将远程服务器的内容/文件拷贝到本地当前服务器

1、复制文件到本地

scp [root@远程服务器IP地址]:[远程服务器目录文件] [当前服务器网站目录/文件夹]  
示范实例:#
scp root@121.54.xxx.xxx:/soft/test.tar.gz /soft/  
其实很简单,我们可以看到只要将上面前后颠倒一下就可以。

2、复制目录到本地

scp -r [root@远程服务器IP地址]:[远程服务器目录] [当前服务器网站目录/文件夹]  
#示范实例:
scp -r root@121.54.xxx.xxx:/root/itbulu /root/mini/