server.txtというファイルがあります。
次のサーバーがあると仮定すると、より多くのサーバーがある可能性があります。 server1 server2 server3 server4
/tmp/ 場所にファイル (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
最初の行には、最初のサーバーのホスト名、スペース、最初のサーバーのパスワードなどを入力します。