一、配置服务器的smtp信息
vim /etc/mail.rcset from=XXX@XXX.com smtp=smtp.xxx.com smtp-auth-user=XXX@XXX.com smtp-auth-password=xxxxx smtp-auth=login
二、service_check.sh检测脚本内容
#!/bin/bashfor port in 80 3306 10050 10022; doif `netstat -tnlp |grep $port &> /dev/null` ; then if `tail -4 /root/lee/service_status.log |grep "$port failed" &> /dev/null` ;thenecho "`date +%F-%H:%M:%S` [`hostname`] `/sbin/ifconfig eth0 |grep "inet addr" |awk '{split($2,a,":"); print a[2]}'` [$port recovery]"> /root/lee/mail_content.txtmail -s "$port recovery" XXXXXXXXXX@139.com < /root/lee/mail_content.txt fiecho "`date +%F-%H:%M:%S` $port no problem" >> /root/lee/service_status.logelseecho "`date +%F-%H:%M:%S` $port failed................" >> /root/lee/service_status.logecho "`date +%F-%H:%M:%S` [`hostname`] `/sbin/ifconfig eth0 |grep "inet addr" |awk '{split($2,a,":"); print a[2]}'` [$port down]"> /root/lee/mail_content.txtmail -s "$port failed" XXXXXXXXXXXX@139.com < /root/lee/mail_content.txtfidone
报警机制说明:如果检测到端口不存在时会发信息,在端口恢复正常后会发送recovery信息确认
三、加入定时任务
*/5 * * * * sh /root/lee/service_check.sh
四、测试截图
手动关闭mysqld服务
过段时间会收到短信,短信截图
手动开启mysqld服务
过5分钟会有个恢复的回执
五、脚本内容已经在附件中,可以自行测试