一部のLinuxシステムを再起動するためのLinuxシェルスクリプト

一部のLinuxシステムを再起動するためのLinuxシェルスクリプト

私は以前に一度も行ったことがないことをしています。

あなたの一部には簡単になると確信しています:)

ネットワーク上のデバイスにSSHを接続し、15分間隔で再起動するLinuxシェルスクリプトを実行する必要があります。

私はそれが次のように見えると思います。

#!/bin/bash

USERNAME=someUser
HOSTS="host1 host2 host3"
SCRIPT="pwd; ls"
for HOSTNAME in ${HOSTS} ; do
    ssh -l ${USERNAME} ${HOSTNAME} "${SCRIPT}"
done

再起動コマンドに接続するにはSSH接続が必要です

for p in server1 server2 server3
do
  ssh ${p} sudo reboot
  sleep 900 
done

最初のコンピュータを再起動してから15分後に接続して再起動する必要があります。

答え1

これは基本的にあなたが要求したものです。

#!/bin/bash
for i in `cat ~/servers.txt`
do
    echo -n $i" "
    ssh -l sudo_user $i "sudo shutdown -r now"
    sleep 900
done

スリープモードでは、再起動が完了してから15分ではなく、最後の注文が行われてから約15分後に再起動コマンドが実行されます。単純なbashシェルを使用して必要な操作を実行できます。サーバーの数が少ない場合はRundeckを使用し、サーバーが100を超える場合はAnsibleを使用することをお勧めします。

このスクリプトはsudoユーザーとして実行するのが最善です。 sshを介して言うまでもなく、rootとして管理しないのが最善です。この操作がスムーズに機能するためには、まず各サーバーで正しいSSH RSAキーでユーザーを入力し、それをsudoグループに追加する必要があります。

関連情報