#!/bin/bash
#Created by yangjie
#mail:xtxdfl@163.com
#blog:http:flower-fz.com
lang=C
#被监控服务器\端口列表
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 方式发送检测信息给接口程序interface.php,接口程序负责分析信息。决定是否发送报警MSN信息、手机短信、电子邮件
send_msg_to_interface()
{
if [[ $2 = "0" ]] || [[ $2 = "2" ]];then
#开始发送警报邮件,xtxdfl@163.com 即是发送方也是接收方
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
#发送MSB警报消息(如果不需要MSN警报可以注释这行)
#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,接口程序负责分析信息。决定是否发送报警MSN信息、手机短信、电子邮件
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 "服务器${server_ip},端口${server_port}能够正常访问!";
server_message="服务器${server_ip},端口{server_port}能够正常访问!"
else
if curl -m 30 -G http://${server_all_list[$i]}/ > /dev/null 2>&1
then
status=1
echo "服务器${server_ip},端口${server_port}能够正常访问!";
server_message="服务器${server_ip},端口{server_port}能够正常访问!"
else
if ping -c 1 $server_ip > /dev/null 2>&1
then
status=2
echo "服务器${server_ip},端口${server_port}不能够正常访问,但是可以ping通!";
server_message="服务器${server_ip},端口{server_port}不能够正常访问,但是可以ping通!"
else
status=0
echo "服务器${server_ip},端口${server_port}不能够正常访问,并且无法ping通!";
server_message="服务器${server_ip},端口{server_port}不能够正常访问,并且无法ping通!"
fi
fi
fi
send_msg_to_interface "${server_message}" "${status}";
let i++
done
网友评论