|
马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们!比来公司办事器地点机房常因打击和收集妨碍招致网站没法一般会见,为了能第一工夫获知网站没法会见,并疾速处置成绩,特使用shell剧本对办事器会见情况举行监控,一但网站没法会见便可触发短信报警,这内里参考了张晏和junnan的博文,在此暗示感激!!
起首必要有一个已守旧飞信的手机号,并把吸收警报短信的手机号加为飞信密友(也能够本人给本人发),挪用飞信的收费短信接口发送报警短信,也可以使用MSN报警,绝对短信报警更实时。
编纂剧本http.sh
vi/opt/http.sh
#!/bin/sh
LANG=C
#被监控办事器、端口列表
server_all_list=(
www.ckuyun.com:80
www.ckuyun.com:80
www.ckuyun.com:80
)
telnum=已守旧飞信的手机号
passwd=飞信暗码
date=$(date-d"today"+"%Y-%m-%d_%H:%M:%S")
#接纳HTTPPOST体例发送检测信息给接口步伐inte***ce.php,接口步伐卖力剖析信息,决意是不是发送报警MSN动静、手机短信、电子邮件。
send_msg_to_inte***ce()
{
if[[$2="0"]]||[[$2="2"]];then
#入手下手发送警报短信,13500000000是吸收方手机号
curl-m600-dusername=${telnum}-dpassword=${passwd}-dsendto=13500000000-dmessage=$1http://sms.api.bz/fetion.php
echo"`date+%Y-%m-%d%H:%M:%S`$1">>http_down.log
#发送msn警报动静(假如不必要msn警报能够正文这行)
#curl-m600-dmenu=http-ddate=$date-dip=$server_ip-dport=$server_port-dstatus=$statushttp://127.0.0.1/monitor/inte***ce.php
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=""
ifcurl-m10-Ghttp://${server_all_list[$i]}/>/dev/null2>&1
then
#status:0,httpdown1,httpok2,httpdownbutpingok
status=1
echo"办事器${server_ip},端口${server_port}可以一般会见!";
server_message="办事器${server_ip},端口${server_port}可以一般会见!";
else
ifcurl-m30-Ghttp://${server_all_list[$i]}/>/dev/null2>&1
then
status=1
echo"办事器${server_ip},端口${server_port}可以一般会见!"
server_message="办事器${server_ip},端口${server_port}可以一般会见!";
else
ifping-c1$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_inte***ce"${server_message}""${status}";
leti++
done
inte***ce.php(必要设置监控端办事器的让其可会见到,如:http://127.0.0.1/monitor/inte***ce.php,与下面剧本对应)
这里必要一个PHP类sendMsg,用来经由过程PHP发送动静到MSN,下载后把目次解压到inte***ce.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)
{
case0:
$message=$ip.办事器没法会见;
break;
case1:
$message=$ip.办事器事情一般;
break;
case2:
$message=$ip.办事器没法会见但能ping通;
break;
}
if($status==0&&$status==1)
{
$sendMsg=newsendMsg();
$sendMsg->login(用来发动静的MSN帐号,暗码);
$sendMsg->createSession(用来吸收动静的MSN帐号);
$sendMsg->sendMessage(iconv("GBK","UTF-8",$message),TimesNewRoman,FF0000);
}
}
}
然后实行crontab-e,到场以下语句:
*/5****sh/opt/http.sh
servicecrondrestart
如许剧本将会每5分钟实行一次,假如反省到网站妨碍就会触发报警
以上剧本运转了很长一段工夫都很一般,也能第一工夫懂得办事器的down机情形,但比来发明不克不及报警了,飞信的短信接口不克不及挪用了,无法只能借助于139邮件报警,邮箱跟手机绑定
使用sendEmail发送报警邮件:
cd/opt
wgethttp://caspian.dotconf.net/menu/Software/SendEmail/sendEmail-v1.56.tar.gz
tar-zxvfsendEmail-v1.56.tar.gz
cdsendEmail-v1.56
cpsendEmail/usr/local/bin
chmod+x/usr/local/bin/sendEmail
#sendEmail利用***
sendEmail-f13512345678@139.com-t13512345678@139.com-ssmtp.139.com-u"fromcacti"-xu13512345678@139.com-xp123456-omessage-charset=utf-8-m“测试邮件发送”
#注释:-f暗示发送者的邮箱
-t暗示吸收者的邮箱
-s暗示SMTP办事器的域名大概ip
-u暗示邮件的主题
-xu暗示SMTP考证的用户名
-xp暗示SMTP考证的暗码(注重,这个暗码貌似无限制,比方我用d!5neyland就不克不及被准确辨认)
-m暗示邮件的内容假如你不带-m参数的话,就会提醒你自行输出
-o文本信息字符集,如不加这一项,发送的中文信息就会酿成乱码
把原剧本中的
curl-m600-dusername=${telnum}-dpassword=${passwd}-dsendto=13500000000-dmessage=$1http://sms.api.bz/fetion.php
修正为:
sendEmail-f13512345678@139.com-t13512345678@139.com-ssmtp.139.com-u"fromcacti"-xu13512345678@139.com-xp123456-omessage-charset=utf-8-m$1
如果您觉得本篇CentOSLinux教程讲得好,请记得点击右边漂浮的分享程序,把好文章分享给你的好朋友们! |
|