网站搜索

Pscp - 使用单个 Shell 将文件传输/复制到多个 Linux 服务器


Pscp 实用程序允许您使用单个终端通过一个命令将文件传输/复制到多个远程 Linux 服务器,该工具是 Pssh(并行 SSH 工具)的一部分,它是提供 OpenSSH 的并行版本和其他类似工具,例如:

  1. pscp – 是将文件并行复制到多个主机的实用程序。
  2. prsync – 是一个用于高效地将文件并行复制到多个主机的实用程序。
  3. pnuke – 它有助于并行终止多个远程主机上的进程。
  4. pslurp – 它有助于将文件从多个远程主机并行复制到中央主机。

当在网络上有多个主机的网络环境中工作时,系统管理员可能会发现上面列出的这些工具非常有用。

在本文中,我们将了解 Pscp 实用程序的一些有用示例,用于将文件传输/复制到网络上的多个 Linux 主机。

要使用pscp工具,您需要在Linux系统上安装PSSH实用程序,有关PSSH的安装,您可以阅读这篇文章。

  1. 如何安装Pssh工具在多个Linux服务器上执行命令

除了与给定实用程序的特定功能相关的少数选项外,这些工具使用的几乎所有不同选项都是相同的。

如何使用 Pscp 将文件传输/复制到多个 Linux 服务器

使用 pscp 时,您需要创建一个单独的文件,其中包含连接到服务器所需的 Linux 服务器 IP 地址和 SSH 端口号。

将文件复制到多个 Linux 服务器

让我们创建一个名为“myscphosts.txt”的新文件,并添加 Linux 主机 IP 地址和 SSH 端口(默认 22)号列表,如图所示。

192.168.0.3:22
192.168.0.9:22

将主机添加到文件后,就可以使用以下命令将文件从本地计算机复制到 /tmp 目录下的多个 Linux 主机。

pscp -h myscphosts.txt -l tecmint -Av wine-1.7.55.tar.bz2 /tmp/
OR
pscp.pssh -h myscphosts.txt -l tecmint -Av wine-1.7.55.tar.bz2 /tmp/
样本输出
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 17:48:25 [SUCCESS] 192.168.0.3:22
[2] 17:48:35 [SUCCESS] 192.168.0.9:22

有关上述命令中使用的选项的说明。

  1. -h 开关用于从给定文件和位置读取主机。
  2. -l 开关读取所有未定义特定用户的主机上的默认用户名。
  3. -A 开关告诉 pscp 请求密码并发送到 ssh。
  4. -v 开关用于在详细模式下运行 pscp。

将目录复制到多个 Linux 服务器

如果要复制整个目录,请使用 -r 选项,它将递归复制整个目录,如图所示。

pscp -h myscphosts.txt -l tecmint -Av -r Android\ Games/ /tmp/
OR
pscp.pssh -h myscphosts.txt -l tecmint -Av -r Android\ Games/ /tmp/
样本输出
Warning: do not enter your password if anyone else has superuser
privileges or access to your account.
Password: 
[1] 17:48:25 [SUCCESS] 192.168.0.3:22
[2] 17:48:35 [SUCCESS] 192.168.0.9:22

您可以查看pscp的手动输入页面或使用pscp --help命令寻求帮助。

结论

这个工具值得尝试,就好像您控制多个 Linux 系统并且已经有了基于 SSH 密钥的无密码登录设置一样。