用ksh编写检测http服务
来源:互联网 发布:印度外汇储备数据 编辑:程序博客网 时间:2024/06/07 21:48
相关查考资料:
编辑脚本http.sh
vi/opt/http.sh
#!/bin/sh
LANG=C
LANG=C
#被监控服务器、端口列表
server_all_list=(\
www.qq.com:80\
www.163.com:80 \
www.sina.com:80 \
)
server_all_list=(\
www.qq.com:80
)
telnum=已开通飞信的手机号
passwd=飞信密码
passwd=飞信密码
date=$(date -d "today"+"%Y-%m-%d_%H:%M:%S")
#采用HTTPPOST方式发送检测信息给接口程序interface.php,接口程序负责分析信息,决定是否发送报警MSN消息、手机短信、电子邮件。
send_msg_to_interface()
{
if [[ $2 = "0" ]] || [[ $2 = "2" ]]; then
#开始发送警报短信,13500000000是接收方手机号
curl -m 600 -d username=${telnum} -d password=${passwd} -dsendto=13500000000 -dmessage=$1 http://sms.api.bz/fetion.php
echo "`date+'%Y-%m-%d%H:%M:%S'` $1 ">> http_down.log
#发送msn警报消息(如果不需要msn警报可以注释这行)
# curl -m 600 -d menu=http -d date=$date -d ip=$server_ip -dport=$server_port -d status=$status http://127.0.0.1/monitor/interface.php
fi;
send_msg_to_interface()
{
#
}
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/null2>&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/null2>&1
then
status=1
echo "服务器${server_ip},端口${server_port}能够正常访问!"
server_message="服务器${server_ip},端口${server_port}能够正常访问!";
else
if ping -c 1 $server_ip > /dev/null2>&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
i=0
while
do
done
interface.php(需要设置监控端服务器的让其可访问到,如:http://127.0.0.1/monitor/interface.php,与上面脚本对应)
这里需要一个PHP类 sendMsg,用来通过PHP发送消息到MSN,下载后把目录解压到interface.php目录即可。
这里需要一个PHP类 sendMsg,用来通过PHP发送消息到MSN,下载后把目录解压到interface.php目录即可。
include('sendmsg/sendMsg.php');
//HTTP服务器监控
if (isset($_POST["menu"]))
{
if (htmlspecialchars($_POST["menu"]) =="http")
{
$date =htmlspecialchars($_POST["date"]);
$ip =htmlspecialchars($_POST["ip"]);
$port =htmlspecialchars($_POST["port"]);
$status =htmlspecialchars($_POST["status"]);//状态,0表示无法访问,1表示正常,2表示无法访问但能ping通
$message = '';
switch($status)
{
case'0':
$message= $ip . '服务器无法访问';
break;
case'1':
$message= $ip . '服务器工作正常';
break;
case'2':
$message= $ip . '服务器无法访问但能ping通';
break;
}
if ($status == 0&& $status == 1)
{
$sendMsg =new sendMsg();
$sendMsg->login('用来发消息的MSN帐号','密码');
$sendMsg->createSession('用来接收消息的MSN帐号');
$sendMsg->sendMessage(iconv("GBK","UTF-8", $message), 'Times New Roman', 'FF0000');
}
}
}
//HTTP服务器监控
if (isset($_POST["menu"]))
{
}
然后执行crontab -e,加入如下语句:
*/5 * * * * sh/opt/http.sh
service crondrestart
这样脚本将会每5分钟执行一次,如果检查到网站故障就会触发报警
编写如下:一个简单的检测http
- 用ksh编写检测http服务
- ksh
- ksh
- 使用KSH编写的一个自动化工具
- 为SOAP/HTTP Web服务编写可靠客户机
- 为 SOAP/HTTP Web 服务编写可靠的客户机
- http://www.sci.muni.cz/docs/Unix/ksh.html
- 用 ATL 编写 Windows 服务
- 用C# 编写 Windows 服务
- 用vb编写NT服务
- 用C#编写Windows服务
- 用C++编写Windows服务
- 用C#编写Windows服务
- 用 ATL 编写 Windows 服务
- 用C#编写Windows服务
- 用ATL编写Windows服务
- 用ATL编写Windows服务
- 用vc编写http服务器
- PHP学习笔记
- 学习Linux/Unix的操作命令
- Redhat在VirtualBox不能全屏不能上…
- 学习Linux中ksh的用法
- shell编程之正则表达式基础
- 用ksh编写检测http服务
- shell之“>/dev/null 2>&1”
- linux里的CPU负载
- grep、awk、sed学习笔记
- 运行awk脚本文件遇到不能执行问题
- CHECK_NRPE: Error - Could not co…
- nagios plugins之check_http
- Linux--date命令
- 整合Cacti+Nagios出现打开php文件…