
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