Shell程序集锦二-短信报警程序(Shell和Java) - 许亿的博客 - 51CTO...
来源:百度文库 编辑:神马文学网 时间:2024/10/06 23:02:21
Shell程序集锦二-短信报警程序(Shell和Java)
前言:以下是自己写的Java和Shell程序来监控Web的状况,并且通过短信来报警。这个是上次因为十七八,CCTV对网站的安全性要求很高,为了第一时间可以处理和解决,临时写的一个程序。程序分为两部分第一部分通过Http1.1协议查看Web首页的状况,第二部分 是发送短信程序。判断第一部分的结果来触发短信发送平台。下面主要是第一部分。首先写了一个Shell,因为稳定性的原因又写了Java的小程序。
--Ajian
注意:其中的 [url]http://localhost/vivigw/monit_sms.php?message=[/url]就是短信发送触发程序
#!/bin/sh
#monit.sh
#Create By : Ajian
#Date : 20071016
getdir="/tmp"
/usr/bin/wget [url]http://wap.cctv.com[/url] > $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 [url]http://localhost/vivigw/monit_sms.php?message=[/url]网站白板
/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 [url]http://localhost/vivigw/monit_sms.php?message=[/url]网站白板
/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 [url]http://localhost/vivigw/monit_sms.php?message=$Number[/url]
/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 [url]http://localhost/vivigw/monit_sms.php?message=$Number[/url]
/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 [url]http://localhost/vivigw/monit_sms.php?message=$Number[/url]
/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 [url]http://localhost/vivigw/monit_sms.php?message=CannotPing[/url]
/bin/rm -f /tmp/monit_sms.php?message=CannotPing
fi
fi
fi
fi
fi
fi
//java 获取响应头response header
//java CheckHttpResponse [url]http://www.baidu.com[/url] 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");
}
}
}
前言:以下是自己写的Java和Shell程序来监控Web的状况,并且通过短信来报警。这个是上次因为十七八,CCTV对网站的安全性要求很高,为了第一时间可以处理和解决,临时写的一个程序。程序分为两部分第一部分通过Http1.1协议查看Web首页的状况,第二部分 是发送短信程序。判断第一部分的结果来触发短信发送平台。下面主要是第一部分。首先写了一个Shell,因为稳定性的原因又写了Java的小程序。
--Ajian
注意:其中的 [url]http://localhost/vivigw/monit_sms.php?message=[/url]就是短信发送触发程序
#!/bin/sh
#monit.sh
#Create By : Ajian
#Date : 20071016
getdir="/tmp"
/usr/bin/wget [url]http://wap.cctv.com[/url] > $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 [url]http://localhost/vivigw/monit_sms.php?message=[/url]网站白板
/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 [url]http://localhost/vivigw/monit_sms.php?message=[/url]网站白板
/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 [url]http://localhost/vivigw/monit_sms.php?message=$Number[/url]
/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 [url]http://localhost/vivigw/monit_sms.php?message=$Number[/url]
/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 [url]http://localhost/vivigw/monit_sms.php?message=$Number[/url]
/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 [url]http://localhost/vivigw/monit_sms.php?message=CannotPing[/url]
/bin/rm -f /tmp/monit_sms.php?message=CannotPing
fi
fi
fi
fi
fi
fi
//java 获取响应头response header
//java CheckHttpResponse [url]http://www.baidu.com[/url] 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");
}
}
}