#!/bin/bash
#Created by yangjie
#mail:xtxdfl@163.com
#blog:http:flower-fz.com
lang=C
#被監(jiān)控服務(wù)器\端口列表
server_all_list={\
10.10.10.10:10 \
100.100.100.100:100 \
0.0.0.0:0 \
}
telnum=134********
passwd=12345
date=$(date -d "today" +"%Y-%m-%d_%H:%M:%S")
#采用http post 方式發(fā)送檢測(cè)信息給接口程序interface.php,接口程序負(fù)責(zé)分析信息。決定是否發(fā)送報(bào)警MSN信息、手機(jī)短信、電子郵件
send_msg_to_interface()
{
if [[ $2 = "0" ]] || [[ $2 = "2" ]];then
#開始發(fā)送警報(bào)郵件,xtxdfl@163.com 即是發(fā)送方也是接收方
sendEmail -f xtxdfl@163.com -t xtxdfl@163.com -s smtp.139.com -u "from http_monitor" -xu xtxdfl@163.com -xp james -o message -charset=utf-8 -m $1
#發(fā)送MSB警報(bào)消息(如果不需要MSN警報(bào)可以注釋這行)
#curl -m 600 -d menu=http -d date=$date -d ip=$server_ip -d port =$server_port -d status=$status http://127.0.0.1/monitor/interface.php,接口程序負(fù)責(zé)分析信息。決定是否發(fā)送報(bào)警MSN信息、手機(jī)短信、電子郵件
fi
}
server_all_len=${#server_all_list[*]}
i=0
while [$i -lt $server_all_len]
do
server_ip=$(echo ${server_all_list[$i]} | awk -F ':' '{print $1}')
server_port=$(echo ${server_all_list[$i]} | awk -F ':' '{print $2}')
server_message=""
if curl -m 10 -G http:// ${server_all_list[$i]} / > /dev/null 2>&1
then
# status: 0,http down 1,http ok 2,http down but ping ok
status=1
echo "服務(wù)器${server_ip},端口${server_port}能夠正常訪問!";
server_message="服務(wù)器${server_ip},端口{server_port}能夠正常訪問!"
else
if curl -m 30 -G http://${server_all_list[$i]}/ > /dev/null 2>&1
then
status=1
echo "服務(wù)器${server_ip},端口${server_port}能夠正常訪問!";
server_message="服務(wù)器${server_ip},端口{server_port}能夠正常訪問!"
else
if ping -c 1 $server_ip > /dev/null 2>&1
then
status=2
echo "服務(wù)器${server_ip},端口${server_port}不能夠正常訪問,但是可以ping通!";
server_message="服務(wù)器${server_ip},端口{server_port}不能夠正常訪問,但是可以ping通!"
else
status=0
echo "服務(wù)器${server_ip},端口${server_port}不能夠正常訪問,并且無法ping通!";
server_message="服務(wù)器${server_ip},端口{server_port}不能夠正常訪問,并且無法ping通!"
fi
fi
fi
send_msg_to_interface "${server_message}" "${status}";
let i++
done