mirror of
				https://github.com/librenms/librenms-agent.git
				synced 2024-05-09 09:54:52 +00:00 
			
		
		
		
	
		
			
				
	
	
		
			83 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
			
		
		
	
	
			83 lines
		
	
	
		
			1.4 KiB
		
	
	
	
		
			Bash
		
	
	
	
	
	
#!/usr/bin/env bash
 | 
						|
 | 
						|
VERSION="0.2 (beta)"
 | 
						|
 | 
						|
IFS=$'\n\t'
 | 
						|
GLOBIGNORE="*"
 | 
						|
 | 
						|
BIN_NC="$(command -v nc)"
 | 
						|
BIN_SED="$(command -v sed)"
 | 
						|
 | 
						|
pval="6556"
 | 
						|
 | 
						|
EXITCODE=3
 | 
						|
 | 
						|
while getopts "Vha:H:p:" opt; do
 | 
						|
  case $opt in
 | 
						|
    V) printf 'check_mrpe v%s\n' "$VERSION"
 | 
						|
       exit 0
 | 
						|
       ;;
 | 
						|
    h) hflag=1
 | 
						|
       ;;
 | 
						|
    a) aflag=1
 | 
						|
       aval="$OPTARG"
 | 
						|
       ;;
 | 
						|
    H) Hflag=1
 | 
						|
       Hval="$OPTARG"
 | 
						|
       ;;
 | 
						|
    p) pval="$OPTARG"
 | 
						|
       ;;
 | 
						|
    \?) hflag=1
 | 
						|
        EXITCODE=0
 | 
						|
        ;;
 | 
						|
  esac
 | 
						|
done
 | 
						|
 | 
						|
if ! [ "$Hflag" ] && ! [ "$hflag" ]; then
 | 
						|
  printf "Error: Host not specified\n"
 | 
						|
  hflag=1
 | 
						|
  EXITCODE=1
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$hflag" ]; then
 | 
						|
  printf "check_mrpe:\n"
 | 
						|
  printf "Usage:\n"
 | 
						|
  printf " check_mrpe [-H host] [-p port] [-a app]\n"
 | 
						|
  exit $EXITCODE
 | 
						|
fi
 | 
						|
 | 
						|
if [ "$aflag" ];
 | 
						|
then
 | 
						|
  SED_CMD="s/\((.*) $aval [0-9] \)\(.*\)/\2/p"
 | 
						|
  SED_CMD_STATUS="s/(.*) $aval \([0-9]\) \(.*\)/\1/p"
 | 
						|
else
 | 
						|
  SED_CMD="s/(.*) \(.*\) [0-9] \(.*\)/\1 \2/p"
 | 
						|
fi
 | 
						|
 | 
						|
for i in $($BIN_NC -w 1 "$Hval" "$pval" 2>&1 | $BIN_SED '/^<<<mrpe>>>/,/^<<</{//!b};d') ; do
 | 
						|
  echo "$i" | $BIN_SED -n "$SED_CMD"
 | 
						|
  if [ "$aflag" ];
 | 
						|
  then
 | 
						|
    STATUSCODE=$(echo "$i" | $BIN_SED -n "$SED_CMD_STATUS")
 | 
						|
    if [ "$STATUSCODE" ];
 | 
						|
    then
 | 
						|
      case $STATUSCODE in
 | 
						|
        0)
 | 
						|
          EXITCODE=0
 | 
						|
          ;;
 | 
						|
        1)
 | 
						|
          EXITCODE=1
 | 
						|
          ;;
 | 
						|
        2)
 | 
						|
          EXITCODE=2
 | 
						|
          ;;
 | 
						|
        *)
 | 
						|
          EXITCODE=3
 | 
						|
          ;;
 | 
						|
      esac
 | 
						|
    fi
 | 
						|
  fi
 | 
						|
done
 | 
						|
 | 
						|
exit $EXITCODE
 |