pfsense-nagios-checks/check_pf_interface

38 lines
1.3 KiB
Bash

#!/bin/sh
if [ "$1" = "-i" ] && [ ! -z "$2" ]; then
INT=$2
NAME_INSTEAD=$4
IFCONFIG_ACTIVE=$( /sbin/ifconfig $INT | grep "status: active" | wc -l | sed -e 's/^[ \t]*//') ||exit 3
IFCONFIG_UP=$( /sbin/ifconfig $INT | grep "<UP," | wc -l | sed -e 's/^[ \t]*//') ||exit 3
if [ "$NAME_INSTEAD" != "" ]; then
INT="$NAME_INSTEAD($INT)"
fi
if [ $IFCONFIG_ACTIVE -eq "1" ] && [ $IFCONFIG_UP -eq "1" ] ; then
echo "OK - $INT up and active"
exit 0
elif [ $IFCONFIG_ACTIVE -eq "0" ] && [ $IFCONFIG_UP -eq "1" ] ; then
echo "CRITICAL - $INT up, but not active"
exit 2
elif [ $IFCONFIG_ACTIVE -eq "1" ] && [ $IFCONFIG_UP -eq "0" ] ; then
echo "CRITICAL - $INT down, but active"
exit 2
elif [ $IFCONFIG_ACTIVE -eq "0" ] && [ $IFCONFIG_UP -eq "0" ] ; then
echo "CRITICAL - $INT down and not active"
exit 2
else
echo "UNKNOWN status on interface $INT"
exit 3
fi
else
echo "check_pf_interface.sh - Nagios Plugin for checking an interface on pfSense "
echo ""
echo "Usage: check_pf_interface.sh -i <interface_name> [-name alt name instead of one from ifconfig]"
echo "Example: check_pf_interface.sh -i re0 -name LAN"
exit 3
fi