Shell程序集锦二-短信报警程序(Shell和Java)
|
|
|
前言:以下是自己写的Java和Shell程序来监控Web的状况,并且通过短信来报警。这个是上次因为十七八,CCTV对网站的安全性要求很高,为了第一时间可以处理和解决,临时写的一个程序。程序分为两部分第一部分通过Http1.1协议查看Web首页的状况,第二部分 是发送短信程序。判断第一部分的结果来触发短信发送平台。下面主要是第一部分。首先写了一个Shell,因为稳定性的原因又写了Java的小程序。
--Ajian
#!/bin/sh #monit.sh #Create By : Ajian #Date : 20071016 getdir="/tmp" /usr/bin/wget http://wap.cctv.com > $getdir/wget.txt 2>&1 /bin/rm -f $getdir/index.php* /bin/rm -f /root/index.php* sleep 5 Number=`sed -n '13p' $getdir/wget.txt | awk '{print $4$5}'` #echo $Number if [ "$Number" = "0KB/s" ] then /usr/bin/wget http://localhost/vivigw/monit_sms.php?message=网站白板 /bin/rm -f /tmp/monit_sms.php?message=网站白板 break else Number=`sed -n '8p' $getdir/wget.txt | awk '{print $4$5}'` #echo $Number if [ "$Number" = "0KB/s" ] then /usr/bin/wget http://localhost/vivigw/monit_sms.php?message=网站白板 /bin/rm -f /tmp/monit_sms.php?message=网站白板 break else Number=`sed -n '6p' $getdir/wget.txt | awk '{print $2$3}'` #echo $Number if [ "$Number" = "ERROR404:" ] then /usr/bin/wget http://localhost/vivigw/monit_sms.php?message=$Number /bin/rm -f /tmp/monit_sms.php?message=$Number break else Number=`sed -n '3p' $getdir/wget.txt | awk '{print $3}'` # echo $Number if [ "$Number" = "failed:NameService" ] then /usr/bin/wget http://localhost/vivigw/monit_sms.php?message=$Number /bin/rm -f /tmp/monit_sms.php?message=$Number break else Number=`sed -n '4p' $getdir/wget.txt | awk '{print $5$6}'` # echo $Number if [ "$Number" = "Connectionrefused." ] then /usr/bin/wget http://localhost/vivigw/monit_sms.php?message=$Number /bin/rm -f /tmp/monit_sms.php?message=$Number& break else /bin/ping -c 3 61.135.144.225 > $getdir/ping.txt 2>&1 sleep 20 Number=`sed -n '4p' $getdir/ping.txt | awk '{print $4$5}'` echo $Number if [ "$Number" = "0received," ] then /usr/bin/wget http://localhost/vivigw/monit_sms.php?message=CannotPing /bin/rm -f /tmp/monit_sms.php?message=CannotPing fi fi fi fi fi fi
|
//java 获取响应头response header //java CheckHttpResponse http://www.baidu.com 1>>CheckHttpResponse_log.txt //Create By Ajian . //Thank you for Jiao's help
import java.io.IOException; import java.net.URL; import java.net.HttpURLConnection; import java.util.Date;
public class CheckHttpResponse { public static void main(String[] args) throws IOException{ String testUrl = new String(""); java.text.SimpleDateFormat sdf = new java.text.SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); String monitUrl = "http://localhost/vivigw/monit_sms.php?message="; if (args.length > 0) { testUrl = args[0]; } else { testUrl = "http://www.baidu.com/index.php"; } System.out.println("要测试的URL是: " + testUrl); System.out.println("测试时间是:" + sdf.format(new java.util.Date())); URL url = new URL(testUrl); HttpURLConnection conn = null; int responseCode = 0; try { conn = (HttpURLConnection)url.openConnection(); responseCode = conn.getResponseCode(); } catch (java.net.UnknownHostException uhE) { responseCode = 700;//UnknownHost System.out.println("未知主机,可能域名解析错误"); } System.out.println("响应代码(ResponseCode)是 : " + responseCode);
if (responseCode != 200) { monitUrl += responseCode; HttpURLConnection monitConn = null; monitConn = (HttpURLConnection)(new URL(monitUrl).openConnection()); // System.out.println("监控URL是:" + monitUrl); System.out.println("报警结果是:" + monitConn.getResponseCode() + "\n"); }
} }
| | | 本文出自 51CTO.COM技术博客 |