Man*_*ish 3 shell scp shell-script
我有一个名为 server.txt 的文件
假设它有以下服务器,可能会有更多的服务器 server1 server2 server3 server4
如何在 /tmp/ location 复制文件(所有服务器上的 file.txt 使用 scp 命令)。
假设bash:
for server in $(cat server.txt)
do
scp file.txt "$server":/tmp/
done
Run Code Online (Sandbox Code Playgroud)
并行模式(如果 server.txt 很大,请不要使用此模式,因为您可能会耗尽带宽、停止连接,然后很难弄清楚哪些成功哪些失败了):
for server in $(cat server.txt)
do
scp file.txt "$server":/tmp/ &
done
wait
Run Code Online (Sandbox Code Playgroud)
根据要求,现在提供密码支持:
while read SERVER PASSWORD
do
sshpass -p "$PASSWORD" scp file.txt "$SERVER":/tmp/
done <./server.txt
Run Code Online (Sandbox Code Playgroud)
将server.txt第一台服务器的主机名、空格、第一台服务器的密码放在第一行,以此类推。