Shell程序集锦二-短信报警程序(Shell和Java) - 许亿的博客 - 51CTO...

来源:百度文库 编辑:神马文学网 时间:2024/07/09 03:34:36
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");
        }

   }
}