Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #!/bin/bash
- ############################################################################################
- # +--------------------------------------------------------------------------------------+ #
- # | Deze nagios check haalt met wget de release info op bij een ingevoerde url | #
- # | en checked of deze nog gelijk is aan de current version op de phpmyadmin website | #
- # | | #
- # | flip hess 2011 05 04 [email protected] | #
- # +--------------------------------------------------------------------------------------+ #
- ############################################################################################
- # Variables:
- PATH='/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin'
- SCRIPT_PATH="${0}"
- URL="${1}"
- STATE_OK=0
- STATE_WARNING=1
- STATE_CRITICAL=2
- STATE_UNKNOWN=3
- # current version url
- VERSIONURL='http://phpmyadmin.net/home_page/version.php'
- # Functions:
- # The main function.
- function fMain()
- {
- # Check whether any arguments are given:
- if [ ${#} != 1 ]
- then
- fShowUsage
- exit "${STATE_UNKNOWN}"
- fi
- # check voor een resolvbare url door de http:// en alles na de 1e / te substitueren en de rest te resolven
- FQDN=$(echo ${URL} | sed -e 's/http\:\/\///' -e 's/\/.*$//')
- # resolv de mogelijke fqdn
- host -q ${FQDN} > /dev/null 2>&1
- # check exit code
- if [ ${?} != 0 ]
- then
- echo "${URL} is not resolvable!"
- exit "${STATE_UNKNOWN}"
- fi
- # check if url is expected format of phpmyadmin:
- lynx -dump -crawl -connect_timeout=2 -width=200 ${URL} | grep -q 'phpMyAdmin is more friendly with a frames-capable browser'
- if [ ${?} != 0 ]
- then
- echo "Unexpected content string, No phpmyadmin found on ${URL}!"
- exit "${STATE_UNKNOWN}"
- fi
- # check for current releasedate on phpmyadmin website
- SINCE=$( lynx -dump -crawl -connect_timeout=2 -width=200 ${VERSIONURL} | sed 1d | grep -Ev '(^$|http://)' | tail -1 | tr -d "-")
- # check if SINCE consists of only dots and numbers:
- if [ -n "$(echo "${SINCE}" | tr -d "[:digit:]")" ] || [ -z "${SINCE}" ]
- then
- echo "Something went wrong gathering since version date information from phpmyadmin website"
- fShowUsage
- exit "${STATE_UNKNOWN}"
- fi
- # check for version number on phpmyadmin website:
- VERSION=$( lynx -dump -crawl -connect_timeout=2 -width=200 ${VERSIONURL} | sed 1d | grep -Ev '(^$|http://)' | head -1 )
- # check if VERSION consists of only numbers:
- if [ -n "$(echo "${VERSION}" | tr -d ".[:digit:]")" ] || [ -z "${VERSION}" ]
- then
- echo "Something went wrong gathering since version date information from phpmyadmin website"
- fShowUsage
- exit "${STATE_UNKNOWN}"
- fi
- # check for version on our phpmyadmin installation
- OURVERSION=$( lynx -dump -crawl -connect_timeout=2 -width=200 ${URL}/README |grep Version | sed -e 's/ Version //g')
- # check if OURVERSION consists of only dots and numbers:
- if [ -n "$(echo "${OURVERSION}" | tr -d ".[:digit:]")" ] || [ -z "${SINCE}" ]
- then
- echo "Something went wrong gathering since version date information from the provided url"
- fShowUsage
- exit "${STATE_UNKNOWN}"
- fi
- # make results
- if [ "${OURVERSION}" = "${VERSION}" ]
- then
- echo "OK - version ${OURVERSION} is the current phpmyadmin version"
- exit "${STATE_OK}"
- else
- echo "CRITICAL - There is a newer version of phpmyadmin present on http://phpmyadmin.net!"
- echo "We use version ${OURVERSION} but there is a newer version since ${SINCE}, version ${VERSION}"
- exit "${STATE_CRITICAL}"
- fi
- return "${?}"
- }
- # Shows usage.
- function fShowUsage()
- {
- echo "Usage: ${SCRIPT_PATH} http://phpmyadminURL"
- return 0
- }
- # Start the program:
- fMain "${@}"
- # Exit with previous return code:
- exit "${?}"
Advertisement
Add Comment
Please, Sign In to add comment