scp
Linux scp命令用于Linux之间复制文件和目录。
scp是 secure copy的缩写, scp是linux系统下基于ssh登陆进行安全的远程文件拷贝命令。
scp优点与不足
scp命令用于在Linux下进行远程拷贝文件的命令,和它类似的命令有cp,不过cp只是在本机进行拷贝不能跨服务器,而且scp传输是加密的。可能会稍微影响一下速度。当你服务器硬盘变为只读read only system时,用scp可以帮你把文件移出来。另外,scp还非常不占资源,不会提高多少系统负荷,在这一点上,rsync就远远不及它了。虽然 rsync比scp会快一点,但当小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本不影响系统正常使用。
语法
scp 【选项】 【参数】
参数说明
-1:使用ssh协议版本1;
-2:使用ssh协议版本2;
-4:使用ipv4;
-6:使用ipv6;
-B:以批处理模式运行;
-C:使用压缩;
-F:指定ssh配置文件;
-l:指定宽带限制;
-o:指定使用的ssh选项;
-P:指定远程主机的端口号;
-p:保留文件的最后修改时间,最后访问时间和权限模式;
-q:不显示复制进度;
-r:以递归方式复制。
使用完整语法
1.从远程服务器上下载文件到本地目录
scp 用户名@目标主机IP:文件所在路径 本地主机存放路径
2.上传本地文件到远程服务器指定目录
scp 本地文件路径 用户名@目标主机IP:远程服务器存放路径
简单实例
注:两台主机IP地址分别是:192.168.1.123,192.168.1.124
1)从远程服务器上下载文件到本地目录
使用ssh协议版本2将192.168.1.124主机上的/root目录下的test文件下载到本地的root目录
[root@linus ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg
[root@linus ~]# scp -2 root@192.168.1.124:/root/test /root
The authenticity of host '192.168.1.124 (192.168.1.124)' can't be established.
ECDSA key fingerprint is SHA256:UPiyXj1RamlkIMDY4KO4mzUtR8cm8mCzL6b5E1YIEAY.
ECDSA key fingerprint is MD5:f2:2c:7f:88:a0:e3:1e:1c:36:aa:f7:fc:bd:76:a1:eb.
Are you sure you want to continue connecting (yes/no)? yes #提示您确定要继续连接吗?选择yes
Warning: Permanently added '192.168.1.124' (ECDSA) to the list of known hosts.
root@192.168.1.124's password: #输入192.168.1.124主机上root用户的密码
test 100% 0 0.0KB/s 00:00 #进度
[root@linus ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg test #test文件下载到本地了
以递归的方式将192.168.1.124主机上的dir目录下载到本地的root目录
[root@linus ~]# ls
anaconda-ks.cfg initial-setup-ks.cfg test
[root@linus ~]# scp -r root@192.168.1.124:/root/dir /root
root@192.168.1.124's password:
[root@linus ~]# ls
anaconda-ks.cfg dir initial-setup-ks.cfg test #dir目录已经被下载下来了
2)上传本地文件到远程服务器
**不显示进度将本地/root/share文件上传至远程服务器的/root目录
[root@linus ~]# scp -q /root/share root@192.168.1.124:/root/
root@192.168.1.124's password:
[root@linus ~]# ls #远程服务器上查看已存在
anaconda-ks.cfg initial-setup-ks.cfg share yum.sh
以递归方式将本地/root/gx目录上传至远程服务器的/root目录
[root@linus ~]# scp -r /root/gx/ root@192.168.1.124:/root/
root@192.168.1.124's password:
[root@linus ~]# ls #远程服务器上查看也已经上传成功
anaconda-ks.cfg gx share yum.sh
dir initial-setup-ks.cfg test