Created
August 1, 2016 02:45
-
-
Save furu-nob/dfd8b07f6dc9d54aa82b8d72195aada3 to your computer and use it in GitHub Desktop.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
# | |
# Origin https://exchange.nagios.org/directory/Plugins/Network-Protocols/HTTP/check_http_curl-2Esh/details | |
# | |
# This script connects to a site via curl and searches for a string in the web page. | |
# If the string is not found it throws out an error and Nagios exit is set to 'critical'. | |
## | |
# Ver. 0.1a | |
# Last modified by Roberto Carraro on 20150528 | |
# | |
# Ver. 0.11 | |
# modified to digest authentication by Nobuyuki Furuyama on 2016/08/01 | |
# Declare constants | |
# The following ones will be used as exit codes by Nagios | |
readonly EXIT_OK=0 | |
# Warning is not used in this script so far | |
readonly EXIT_WARNING=1 | |
readonly EXIT_CRITICAL=2 | |
readonly EXIT_UNKNOWN=3 | |
print_usage() { | |
echo "" | |
echo "This plugin checks the content of a web page." | |
echo "If a certaing text string is not found Nagios exit is set to 'critical'." | |
echo "" | |
echo "Usage: $0 <URL> <text string to search> <authuser:password>" | |
echo "" | |
exit 3 | |
} | |
if [ $# -lt 3 ] ; then | |
print_usage | |
fi | |
URL=$1 | |
TEXT_STRING=$2 | |
DIGEST_AUTH_PAIR=$3 | |
# Connect to URL and search for text string (don't output anything) | |
# We are only interested in the exit state of the grep command, not the output of curl | |
#curl $1 | grep -i $2 > /dev/null | |
curl --digest -u ${DIGEST_AUTH_PAIR} ${URL}|grep "${TEXT_STRING}" | |
# The exit state of the last row is evaluated '0' if True or '1' if False and is intercepted by '$?' | |
if [[ $? -eq 1 ]] ; then | |
# No string found or site down or site non reachable | |
echo "There is a problem with the site or string <${TEXT_STRING}> not found." | |
# Throws out the exit code which will be handled by Nagios as Critical | |
exit $EXIT_CRITICAL | |
else | |
# String found and site up and reachable | |
echo "Site up and string <${TEXT_STRING}> found." | |
# Throws out the exit code which will be handled by Nagios as Ok | |
exit $EXIT_OK | |
fi | |
# Something's wrong; catch-all | |
echo "UNKNOWN" | |
exit $EXIT_UNKNOWN |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment