
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