txtファイルでbashループを使用して複数のコンピュータを再起動する方法

txtファイルでbashループを使用して複数のコンピュータを再起動する方法

1行のbashコード(自己反復)でコンピュータを再起動する方法を知っている人はいますか?詳細はテキストファイル、つまり各コンピュータのIPアドレスから取得されます。スクリプトがコンピュータのIPアドレスを取得したら、それを入力してコンピュータを再起動します。私は何をすべきですか?

答え1

オプション 1# for ループの使用

for host in $(< inputfile.txt );
do 

    ssh $host shutdown -r now 

done

オプション2#xargsの使用

xargs -n1 -I{} echo ssh {} shutdown -r now  < inputfile.txt

注:以下が必要です。SSHパスワードなしログインまたは、入力ファイルにリストされている各ホストのパスワードを尋ねます。

答え2

#!/usr/bin/env bash

for SERVER in `cat servers.lst`
do
 ssh -tttq -o StrictHostKeyChecking=no -o CheckHostIP=no -o ConnectTimeout=5  $SERVER "sudo su -c 'uname -n;uptime;reboot' "
done

関連情報