flipje

nagios_check_vbulletin_visitors

Apr 19th, 2012
76
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.98 KB | None | 0 0
  1. #!/bin/bash
  2. # nagios check vbulleting visitors and guests
  3. # dit script checkt de bezoekers op vbulleting forums dmv online.php
  4. # flip hess April 2012 [email protected]
  5.  
  6. # Variables
  7.  
  8.   PATH='/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin'
  9.   SCRIPT_PATH="${0}"
  10.   HOST="${1}"
  11.  
  12.   URL="http://forums.yourwebsite.com/online.php"
  13.  
  14.   STATE_OK="0"
  15.   STATE_WARNING="1"
  16.   STATE_CRITICAL="2"
  17.   STATE_UNKNOWN="3"
  18.  
  19. # Functions:
  20.  
  21. # The main function.
  22. function fMain()
  23. {
  24.   # Check whether sufficient arguments are given:
  25.   [ ${#} = 0 ] || { fShowUsage ; exit "${STATE_UNKNOWN}"; }
  26.  
  27.   # this script depends on wget
  28.   [  -x /usr/bin/curl ] || { echo "This scripts depends on curl, install it by using \"sudo apt-get install curl\"" ; exit "${STATE_UNKNOWN}"; }
  29.  
  30.   # get info
  31.   curl -s ${URL} > /tmp/wus-online  || { echo "Failed to curl ${URL}." ; exit "${STATE_UNKNOWN}"; }
  32.  
  33.   # get totals
  34.   INFO="$( cat /tmp/wus-online | grep -E '<h1>[ 0-9 ]+\ members\ and\ [ 0-9 ]+\ guests<\/h1\>' | sed -e 's/<h1>//' -e 's/<\/h1>//' -e 's/\t//' -e 's/and\ //' )"
  35.   MAX="$( cat /tmp/wus-online |grep 'Most users ever online was' | awk '{print $7}' | tr -d "," )"
  36.  
  37.   MEMBERS="$( echo "${INFO}" | awk '{print $1}' )" || { echo "Failed to determine logged in members on forums.yourwebsite.com" ; exit "${STATE_UNKNOWN}"; }
  38.   GUESTS="$(  echo "${INFO}" | awk '{print $3}' )" || { echo "Failed to determine guest visitors on forums.yourwebsite.com" ; exit "${STATE_UNKNOWN}"; }
  39.   TOTAL="$(( ${GUESTS} + ${MEMBERS} ))" || { echo "Failed to determine total visitors on forums.yourwebsite.com" ; exit "${STATE_UNKNOWN}"; }
  40.  
  41.   # make results
  42.   echo -e "Okay: ${MEMBERS} members and ${GUESTS} guests Online on forums.yourwebsite.com | 'members'=${MEMBERS} 'guests'=${GUESTS} 'total'=${TOTAL};;;;${MAX} "
  43.   exit "${STATE_OK}"
  44.  
  45. }
  46.  
  47. # Shows usage.
  48. function fShowUsage()
  49. {
  50.   echo "Usage: ${SCRIPT_PATH}"
  51.   return 0
  52. }
  53.  
  54.  
  55. # Start the program:
  56. fMain "${@}"
  57.  
  58. # Exit with previous return code:
  59. exit "${?}"
Advertisement
Add Comment
Please, Sign In to add comment