AW: Simple regular expressions & http_check

Andreas Ericsson ae at op5.se
Thu Apr 15 10:56:12 CEST 2004


Helmut Januschka wrote:
> here you go with perl regexes! 
> requires wget, perl
> 
> 
> use -N to invert -> if string is not found
> 
> #!/bin/bash
> 
> export PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin
> 
> PROGNAME=`basename $0`
> PROGPATH=`echo $0 | sed -e 's,[\\/][^\\/][^\\/]*$,,'`
> REVISION=`echo '$Revision: 1.1 $' | sed -e 's/[^0-9.]//g'`
> 

PROGNAME="${0##*/}"
PROGPATH=`echo $0 | sed -e s,/[^/]*$,,`

Same result but with simpler regex and without 'basename'.

> . $PROGPATH/utils.sh
> 
> print_usage() {
>         echo -e "Check WebSite Plugin $REVISION\nWritten by Helmut Januschka(klewan at chello.at)"
>         echo -e "* Checks if Given String is found in Webpage (Threw http 1.1 request)";
>         echo -e "* If  -N 1 Checks if given string is not found in webpage";
>         echo "---------------------Usage-----------------------------------------------"
>         echo "-S String To Find Def=<html>"
>         echo "-U Url (where to find the string) Def:/"
>         echo "-H Host Def:localhost"
>         echo "-T Trigger Command to execute if -S not found in -U (if no given not used)"
>         echo "-P Port Def:80"
>         echo "-N Negate Search 0/1 alert if -S IS found in -U Def:0";
>         echo "-h  Show This Help"
>         echo "-------------------------------------------------------------------------"
>         print_revision
> }
> 
> #Defs:
> STRING="<html>";
> URL="/";
> HOST="localhost";
> TRIGGER="";
> PORT=80
> NEGATE=0;
> 
> while getopts N:S:P:U:H:T:h o
> do
>         case $o in
>         S) STRING=$OPTARG;;
>         U) URL=$OPTARG;;
>         T) TRIGGER=$OPTARG;;
>         H) HOST=$OPTARG;;
>         P) PORT=$OPTARG;;
>         N) NEGATE=$OPTARG;;
>         h) print_usage; exit $STATE_UNKOWN;;
> 
>         esac
> 
> done
> 
> 
> #####
> #do da check
> c=0;
> if [ $NEGATE -eq 0 ]; then
> 
>         wget -q -O /dev/stdout "http://$HOST:$PORT/$URL"|perl -ne "if (/$STRING/i) { exit 1;}"
>         c=$?;
> 
>         if [ $c -eq 0 ]; then
>                 echo "Check Site2 ($URL / $HOST:$PORT, $STRING not found) [critical `date`]";
>                 exit $STATE_CRITICAL;
> 
>         fi;
>         echo "Check Site2 ($URL / $HOST:$PORT, $STRING found) [ok `date`]";
>         exit $STATE_OK;
> 
> else
>         wget -q -O /dev/stdout "http://$HOST:$PORT/$URL"|perl -ne "if (/$STRING/i) { exit 1;}"
>         c=$?;
> 
>         if [ $c -eq 1 ]; then
>                 echo "Check Site2(NEGATIVE)C ($URL / $HOST:$PORT, $STRING found) [critical `date`]";
>                 exit $STATE_CRITICAL;
> 
>         fi;
> 
>         echo "Check Site2(NEGATE)OK ($URL / $HOST:$PORT, $STRING not found) [ok `date`]";
>         exit $STATE_OK;
> 
> fi;
> -----Ursprüngliche Nachricht-----
> Von: Michael T. Halligan [mailto:michael at halligan.org] 
> Gesendet: Donnerstag, 15. April 2004 03:07
> An: nagios-users at lists.sourceforge.net
> Betreff: [Nagios-users] Simple regular expressions & http_check
> 
> 
> I'm trying to use a check_http to monitor a url on a webserver. If the appserver behind the webserver is working, it will always include a specific string :
> 
> <form name="PdcSurvey" action="http://test.domain/pss/pss6" onsubmit="return PdcProcessPage();" method="post">
> 
> My service check entry is this : 
> 
> /usr/lib/nagios/plugins/check_http -t  60 -H test.domain -u http://test.domain/pss/survey/2gnsJ/app_test_survey.htm?U2=test -r '<form name=\"PdcSurvey\" action=\"http://test.domain/pss/pss6\" onsubmit=\"return PdcProcessPage\(\);\" method=\"post\">'
> 
> And this works  just fine if I do it from the command line.
> 
> However, if I run this from nagios, it always fails claiming "No Output"
> 
> What am I doing wrong with this? Does nagios end up quoting things funny?
> 
> -------------------
> Michael T. Halligan
> Chief Geek
> Halligan Infrastructure Designs.
> http://www.halligan.org/
> 2250 Jerrold Ave #11
> San Francisco, CA 94124-1012
> (415) 724.7998 - Mobile
> 
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by: IBM Linux Tutorials
> Free Linux tutorial presented by Daniel Robbins, President and CEO of GenToo technologies. Learn everything from fundamentals to system administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
> _______________________________________________
> Nagios-users mailing list
> Nagios-users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nagios-users
> ::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. 
> ::: Messages without supporting info will risk being sent to /dev/null
> 
> 
> -------------------------------------------------------
> This SF.Net email is sponsored by: IBM Linux Tutorials
> Free Linux tutorial presented by Daniel Robbins, President and CEO of
> GenToo technologies. Learn everything from fundamentals to system
> administration.http://ads.osdn.com/?ad_id70&alloc_id638&op=click
> _______________________________________________
> Nagios-users mailing list
> Nagios-users at lists.sourceforge.net
> https://lists.sourceforge.net/lists/listinfo/nagios-users
> ::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. 
> ::: Messages without supporting info will risk being sent to /dev/null
> 

-- 
Mvh
Andreas Ericsson
OP5 AB
+46 (0)733 709032
andreas.ericsson at op5.se


-------------------------------------------------------
This SF.Net email is sponsored by: IBM Linux Tutorials
Free Linux tutorial presented by Daniel Robbins, President and CEO of
GenToo technologies. Learn everything from fundamentals to system
administration.http://ads.osdn.com/?ad_id=1470&alloc_id=3638&op=click
_______________________________________________
Nagios-users mailing list
Nagios-users at lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/nagios-users
::: Please include Nagios version, plugin version (-v) and OS when reporting any issue. 
::: Messages without supporting info will risk being sent to /dev/null





More information about the Users mailing list