Simple bash script using curl to check a website.
It works on HTTP and HTTPS.
Requirement: curl
Usage ./check_http.sh
Example:
./check_http.sh ‘http://oglobo.globo.com’ oglobo 1
OK – Site oglobo.globo.com key oglobo time 0.019 |’time’=0.019s;1
Here is the code:
#!/bin/bash #Verificar um HTTPS #Felipe Ferreira set 2013 URL=$1 KEY=$2 CRIT=$3 http_proxy="" DEBUG= if [ -z $CRIT ]; then echo "Usage $0" exit 3 fi TC=`echo ${URL} | awk -F. '{print \$1}' |awk -F/ '{print \$NF}'` TMP="/tmp/check_http_sh_${TC}.tmp" CMD_TIME="curl -k --location --no-buffer --silent --output ${TMP} -w %{time_connect}:%{time_starttransfer}:%{time_total} '${URL}'" TIME=`eval $CMD_TIME` if [ -f $TMP ]; then RESULT=`grep -c $KEY $TMP` else echo "UNKOWN - Could not create tmp file $TMP" # exit 3 fi TIMETOT=`echo $TIME | gawk -F: '{ print \$3 }'` if [ ! -z $DEBUG ]; then echo "CMD_TIME: $CMD_TIME" echo "NUMBER OF $KEY FOUNDS: $RESULT" echo "TIMES: $TIME" echo "TIME TOTAL: $TIMETOT" echo "TMP: $TMP" ls $TMP fi rm -f $TMP SURL=`echo $URL | cut -d "/" -f3-4` MSGOK="Site $SURL key $KEY time $TIMETOT |'time'=${TIMETOT}s;${CRIT}" MSGKO="Site $SURL has problems, time $TIMETOT |'time'=${TIMETOT}s;${CRIT}" #PERFDATA HOWTO 'label'=value[UOM];[warn];[crit];[min];[max] if [ "$RESULT" -ge "1" ] && [ $(echo "$TIMETOT < $CRIT"|bc) -eq 1 ]; then echo "OK - $MSGOK" exit 0 else echo "CRITICAL - $MSGKO" exit 2 fi
Can this script detect if the web page has been defaced?
yes it can
Thanks so much for making this available — I had an F5 loadbalancer handing me redirect after redirect, because check_http doesn’t handle cookies. This check did exactly what I needed, and lets me verify that I’m getting good text on the final page loaded.
How might this script be altered please to handle the passing in of either a username and password pair, or a certificate and privatekey pair (in PEM format)?
I’d do it myself but I don’t know curl at all.
Thanks.
you could modify the script to use something like
curl -u username:password http://example.com
take a look at the documentation
https://curl.haxx.se/docs/httpscripting.html
Thank you