scp 文件同时发送到多个服务器

scp 文件同时发送到多个服务器

我有一个名为 server.txt 的文件

假设有以下服务器,可能还有更多服务器 server1 server2 server3 server4

如何在 /tmp/ location 复制文件(使用 scp 命令在所有服务器上的 file.txt)。

答案1

假设bash

for server in $(cat server.txt)
do
  scp file.txt "$server":/tmp/
done

并行模式(如果 server.txt 很大,请不要使用此模式,因为您可能会耗尽带宽,停止连接,然后很难弄清楚什么成功了,什么失败了):

for server in $(cat server.txt)
do
  scp file.txt "$server":/tmp/ &
done
wait

根据要求,现在提供密码支持:

while read SERVER PASSWORD
do
  sshpass -p "$PASSWORD" scp file.txt "$SERVER":/tmp/
done <./server.txt

server.txt第一台服务器的主机名、空格、第一台服务器的密码放在第一行,依此类推。

相关内容