如何将文件从一台服务器复制到两台不同的服务器

如何将文件从一台服务器复制到两台不同的服务器

我需要使用 shell 脚本为两个不同的服务器复制文件。我尝试使用 Scp 用户名、IP 地址和文件夹的目标路径

答案1

如上所述这里你可以写一个小shell脚本:

for dest in $(<destinations.txt); do
  scp /path/to/the/file_to_copy.txt ${dest}:/remote/path/
done

您只需创建destinations.txt要填写的文件在每一行目的地user@host,如下所示:

[email protected]
[email protected]

请注意,目标路径 ( /remote/path/) 是硬编码在脚本中的,这意味着该路径必须存在于两台服务器中。如果您希望为每个目的地设置专用路径,您可以编辑脚本,删除:/remote/path/并为 中的每个条目设置它destinations.txt

否则你可以看看并行-scp

答案2

通过使用 RSA,您可以编写一个脚本来发送文件,而不会提示您输入密码,您的密码不必输入到脚本中。在您的计算机上运行:

ssh-keygen -t rsa -b 4096 -C "[email protected]"
ssh-copy-id loginname@server1Ip
ssh-copy-id loginname@server2Ip

在你的脚本中:

scp file loginname@server1IP
scp file loginname@server2IP

如果您的登录名和本地用户名相同,您可以省略 loginname@ 部分

相关内容