組織のステージングサーバーの状態をテストするスクリプトを作成したいと思います。私が探しているのは、すべてのサーバーの状態を確認し、サーバーがダウンしたりパフォーマンスが低下した場合に電子メールなどで警告するループをスクリプトに追加することです。
これが私たちが望むスクリプトの外観です。どのように書くべきかわかりません。
#!/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