ステージングサーバーの状態テスト用スクリプト

ステージングサーバーの状態テスト用スクリプト

組織のステージングサーバーの状態をテストするスクリプトを作成したいと思います。私が探しているのは、すべてのサーバーの状態を確認し、サーバーがダウンしたりパフォーマンスが低下した場合に電子メールなどで警告するループをスクリプトに追加することです。

これが私たちが望むスクリプトの外観です。どのように書くべきかわかりません。

#!/bin/bash
array[server1, server2..]
 loop()
   if (condition to check all the servers)
   then
     echo "server is in good status"
   else
     echo "server is down" -->if its down an email to 
                                    [email protected]
   fi

これが私が試したことです。どんなアドバイスや助けでもいいでしょう!

#!/bin/bash

    ping -c $1
    if [ $? -eq 0 ]
    then
          echo "server is alive"
    else
         echo "this was't was good server"
    fi 

答え1

ICMP ping 要求を使用するよりも、特定のサービスをテストする方が良いかもしれません。この提案を受け入れると仮定すると、セキュリティシェルデーモンをテストする例は次のとおりです。

hostlist=(host1.example.com host2.example.com)
for host in "${hostlist[@]}"; do
    if nc -w 2 -z $host 22; then
        echo "INFO: ssh on $host responding"
    else
        echo "ERROR: ssh on $host not responding"
    fi
done

関連情報