我有一个名为 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
第一台服务器的主机名、空格、第一台服务器的密码放在第一行,依此类推。