Linux 中前 15 个 SCP 命令示例

SCP俗称安全复制命令,是Linux系统用来在网络中的主机之间复制文件和目录的实用工具。 SSH 用于传输文件和验证用户。 由于您需要凭据才能使用 ssh 访问远程服务器,因此在运行 SCP 命令时,您需要以类似的方式知道远程主机的凭据。 在本文中,我们将学习一些有用的 SCP 命令。

将文件从一台服务器复制到另一台服务器

要将单个文件从一台服务器复制到网络中的另一台服务器,请使用以下命令。

$ scp file.txt [email protected]:/root/Linuxways

其中,file.txt 是文件名,root 是远程主机的用户名,192.168.178.10 是远程服务器的地址,/root/Linuxways 是远程目录。

查找复制状态

scp 命令和选项 -v 可用于显示复制状态。

$ scp -v file [email protected]:/root/Linuxways

输出:

保留文件属性

一旦我们将文件/文件夹复制到目标服务器,复制的文件将采用目标服务器的最新时间戳。 使用带有选项 -rvp 的 SCP 命令来保留文件的属性,例如权限、时间戳。

$ scp -rvp file [email protected]:/root/Linuxways

输出 :

来源:

目的地 :

隐藏 SCP 输出

可以通过使用带有选项 -q 的 SCP 来抑制包括警告、错误和进度表在内的 SCP 输出,如下所示:

$ scp -q file [email protected]:/root/Linuxways

使用随机端口传输文件

带有选项 -P 的 scp 命令可用于使用默认 22 端口以外的不同端口传输文件。 在 -P 命令后指定 SSH 端口并运行 SCP 命令为:

$ scp -P 4022 file [email protected]:/root/Linuxways

其中 4022 是远程主机的自定义 SSH 端口。

使用身份验证密钥而不是密码

如果远程主机配置了 ssh 密钥认证而不是密码,那么您需要使用 ssh 密钥文件来访问远程主机。 要传输文件/目录,请指定 ssh 密钥文件并使用选项 -i 运行 SCP 命令:

$ scp -i private.pem file [email protected]:/root/Linuxways

其中 private.pem 是远程服务器认证的密钥文件

限制带宽

可以使用带有选项 -l 的 SCP 命令来限制文件传输的带宽。 在这个 example我的带宽限制为 200kbit/s

$ scp -l 200 centos-iso.tar.gz [email protected]:/root/Linuxways

从远程主机复制文件

可以使用 SCP 命令将文件/文件夹从远程服务器复制到本地主机,如下所示:

$ scp [email protected]:/root/Linuxways/file .

其中 root 是远程机器 192.168.178.10 的用户名,/root/Linuxways 是远程目录,. 是本地服务器中的当前目录。

输出:

带有选项 -r 的 scp 命令可用于从远程主机复制目录,如下所示:

$ scp -r [email protected]:/root/Linuxways .

其中 Linuxways 是远程目录的名称。

输出:

仅传输基于 IPV4 的文件

只有 IPV4 地址可用于联系远程主机以使用带有选项 -4 的 SCP 命令传输文件/目录,如下所示:

$ scp -4 file [email protected]:/root/Linuxways

如果您只需要使用 IPV6 地址,请按以下方式运行 SCP 命令:

$ scp -6 file [email protected]:/root/Linuxways

禁用严格的文件检查

将文件/文件夹从远程主机复制到本地服务器时,可以使用带有选项 -T 的 SCP 命令禁用严格的文件检查,如下所示:

$ scp -T [email protected]:/root/Linuxways/documents.tar.gz .

其中 192.168.178.10 是远程主机,documents.tar.gz 是文件名。

压缩文件/文件夹以加快传输速度

在复制到远程服务器时,可以使用带有选项 -C 的 SCP 命令压缩文件/目录。 文件的压缩发生在网络级别和目的地,文件大小将与源相同。

$ scp -C centos.iso.tar.gz [email protected]:/root/Linuxways

复制目录而不是文件

您可以使用带有选项 -r 的 SCP 命令分别复制目录而不是单个文件:

$ scp -r example [email protected]:/tmp

在哪里 example 是文件夹的名称。

复制多个文件

可以使用 SCP 命令将多个文件复制到远程服务器,方法是将文件名指定为:

$ scp file file1 file2 file3 file4 [email protected]:/root/Linuxways

其中 file file1 file2 file3 和 file4 是文件名。

使用另一个密码加密文件/文件夹

在文件传输过程中,Linux 使用 AES-128 算法对文件进行加密。 可以使用带有选项 -c 的 SCP 命令使用其他加密算法。 在这个 example,我使用 3des-cbc 密码来加密文件。

$ scp -c 3des-cbs file [email protected]:/root/Linuxways

远程到远程主机复制

文件/目录可以从一台远程主机复制(example host1) 从 localhost (host) 到另一个远程主机 (host2) 为:

$ scp [email protected]:/root/Linuxways/file [email protected]:/root/Linuxways

其中,192.168.178.10 -> 远程主机 (host1)

192.168.178.11 -> 远程主机(host2)

结论

在本文中,我们学习了一些有用的 SCP 命令,用于在网络中的主机之间复制文件/文件夹。 如果您有任何建议和反馈,请发表评论。