10分ごとに実行するようにスケジュールされた単純なbashスクリプトがあります。このスクリプトはすべてのサービスのPIDをチェックし、見つからない場合は電子メール警告を送信します。
#!/bin/bash
if pgrep "mysql" > /dev/null
then
echo "MYSQL Running"
else
echo "ALERT Stopped"
# Sends Email Alert blah blah
fi
問題は、必要なサービスが何らかの理由で永久にダウンした場合、10分ごとに電子メールを送信し続けることです。サービスがダウンして電子メールが一度送信されると、サービスが再開されるまで電子メールが送信されないように確認をどのように設定しますか?その後、サービスが再び終了したら、新しいメールを送信する必要があります。
答え1
次のようにしてみてください。
#!/bin/bash
if pgrep "mysql" > /dev/null
then
echo "MYSQL Running"
rm -f /var/run/.mysql_mail_sent
else
echo "ALERT Stopped"
if [ ! -f /var/run/.mysql_mail_sent ]; then
// send your mail here
date > /var/run/.mysql_mail_sent
fi
fi