通过mutt发邮件到139邮箱实现短信报警
监控web服务器80端口是否可用,有2种方法:
1. 通过访问web服务器的某个固定URL,查看返回的http状态是否为200;
2. 通过扫描web服务器的 80端口是否已开启;
建议这2种方式都用上
#!/bin/bash
weblog=/root/monitor/websitemon.log
URL="http://www.linuxidc.com/logs/216232462.html"
URL2="http://www.linuxidc.com/logs/215480720.html"
HTTP_CODE=`curl -o /dev/null -s -w "%{http_code}" "${URL}"`
HTTP_CODE2=`curl -o /dev/null -s -w "%{http_code}" "${URL2}"`
time_stamp=`date "+%Y/%m/%d %T"`
subject="linuxidc.com不能访问! @`date +%T`"
echo "==========webpage check====">>$weblog
echo "$time_stamp http_status= $HTTP_CODE ">>$weblog
#检测2个URL,只有全部失败时才会发短信
if [ $HTTP_CODE != '200' ];then
#check it again
if [ $HTTP_CODE2 != '200' ];then
echo "ff-bb down from monitor1"| mutt -s "${subject}" 135456789@139.com
fi
fi
###以下通过nmap 扫描80端口是否可用,-P0当web服务器禁ping的情况下使用 -p80是指只扫描80端口 增快速度和以防被防火墙放入黑名单
echo "========== web1 80 check====">>$weblog
nmap -P0 -p80 -sS -vv 1.2.3.4 |grep 80 |tail -n1>/tmp/nmap.txt
rr80=`cat /tmp/nmap.txt|awk '{print $2}'`
if [ "$rr80" != "open" ]; then
body="1.2.3.4 port80连接错误"
subject="web1 port80 down,check it now!@from monitor `date +%T`"
echo "${body}"| mutt -s "${subject}" 135456789@139.com
fi