【linux命令讲解大全】048.使用scp命令在Linux中进行文件传输的方法和用途

2024-03-02 13:12:47 浏览数 (2)

scp

用于在本地主机和远程主机之间复制文件的加密方式。

补充说明

scp命令用于在Linux下进行远程拷贝文件的命令,与类似的命令cp不同,cp只能在本机进行拷贝,不能跨服务器,并且scp传输是加密的,可能会稍微影响速度。当你的服务器硬盘变为只读(read-only)系统时,使用scp可以将文件移出来。此外,scp占用资源非常少,不会增加太多系统负载,相比之下,rsync就远远不及它。虽然rsyncscp稍快一些,但在小文件众多的情况下,rsync会导致硬盘I/O非常高,而scp基本上不会影响系统的正常使用。

语法

代码语言:javascript复制
scp [选项] [参数]
选项
  • -1:使用SSH协议版本1;
  • -2:使用SSH协议版本2;
  • -4:使用IPv4;
  • -6:使用IPv6;
  • -B:以批处理模式运行;
  • -C:使用压缩;
  • -F:指定SSH配置文件;
  • -i:从指定文件中读取传输时使用的密钥文件,该参数直接传递给SSH;
  • -l:指定带宽限制;
  • -o:指定要使用的SSH选项;
  • -P:指定远程主机的端口号;
  • -p:保留文件的最后修改时间、最后访问时间和权限模式;
  • -q:不显示复制进度;
  • -r:以递归方式复制。
参数
  • 源文件:指定要复制的源文件;
  • 目标文件:目标文件,格式为user@host:filename(其中,filename为目标文件的名称)。

实例

从远程机器复制文件到本地目录:

代码语言:javascript复制
scp root@10.10.10.10:/opt/soft/nginx-0.5.38.tar.gz /opt/soft/

从10.10.10.10机器上的/opt/soft/目录中下载nginx-0.5.38.tar.gz文件到本地/opt/soft/目录中。

从亚马逊云复制OpenVPN到本地目录:

代码语言:javascript复制
scp -i amazon.pem ubuntu@10.10.10.10:/usr/local/openvpn_as/etc/exe/openvpn-connect-2.1.3.110.dmg openvpn-connect-2.1.3.110.dmg

从10.10.10.10机器上下载openvpn安装文件到本地当前目录。

从远程机器复制到本地:

代码语言:javascript复制
scp -r root@10.10.10.10:/opt/soft/mongodb /opt/soft/

从10.10.10.10机器上的/opt/soft/目录中下载mongodb目录到本地的/opt/soft/目录中。

上传本地文件到远程机器指定目录:

代码语言:javascript复制
scp /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest

指定端口2222:

代码语言:javascript复制
scp -rp -P 2222 /opt/soft/nginx-0.5.38.tar.gz root@10.10.10.10:/opt/soft/scptest

复制本地/opt/soft/目录下的文件nginx-0.5.38.tar.gz到远程机器10.10.10.10的/opt/soft/scptest目录。

上传本地目录到远程机器指定目录:

代码语言:javascript复制
scp -r /opt/soft/mongodb root@10.10.10.10:/opt/soft/scptest

上传本地目录/opt/soft/mongodb到远程机器10.10.10.10上的/opt/soft/scptest目录中。

0 人点赞