From 2accc2848c44f8c2c33a455eb1a2e4ffe801921c Mon Sep 17 00:00:00 2001 From: crcro Date: Wed, 3 Aug 2016 22:09:55 +0300 Subject: [PATCH] app-dhcp-stats snmp extend --- snmp/dhcp-status.sh | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100755 snmp/dhcp-status.sh diff --git a/snmp/dhcp-status.sh b/snmp/dhcp-status.sh new file mode 100755 index 0000000..9169cd7 --- /dev/null +++ b/snmp/dhcp-status.sh @@ -0,0 +1,33 @@ +#!/bin/bash +################################################################ +# copy this script to somewhere like /opt and make chmod +x it # +# edit your snmpd.conf add the below line and restart snmpd # +# extend dhcpstats /opt/dhcp-status.sh # +################################################################ +FILE_DHCP='/var/lib/dhcp/db/dhcpd.leases' +BIN_CAT='/usr/bin/cat' +BIN_GREP='/usr/bin/grep' +BIN_TR='/usr/bin/tr' +BIN_SED='/usr/bin/sed' +BIN_SORT='/usr/bin/sort' +BIN_WC='/usr/bin/wc' +DHCP_LEASES='^lease' +DHCP_ACTIVE='^lease|binding state active' +DHCP_EXPIRED='^lease|binding state expired' +DHCP_RELEASED='^lease|binding state released' +DHCP_ABANDONED='^lease|binding state abandoned' +DHCP_RESET='^lease|binding state reset' +DHCP_BOOTP='^lease|binding state bootp' +DHCP_BACKUP='^lease|binding state backup' +DHCP_FREE='^lease|binding state free' +NO_ERROR='[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3} binding' + +$BIN_CAT $FILE_DHCP | $BIN_GREP $DHCP_LEASES | $BIN_SORT -u | $BIN_WC -l +$BIN_GREP -E "$DHCP_ACTIVE" $FILE_DHCP | $BIN_TR '\n' '|' | $BIN_SED 's/ {| //g' | $BIN_TR '|' '\n' | $BIN_GREP -E "$NO_ERROR" | $BIN_SORT -u | $BIN_WC -l +$BIN_GREP -E "$DHCP_EXPIRED" $FILE_DHCP | $BIN_TR '\n' '|' | $BIN_SED 's/ {| //g' | $BIN_TR '|' '\n' | $BIN_GREP -E "$NO_ERROR" | $BIN_SORT -u | $BIN_WC -l +$BIN_GREP -E "$DHCP_RELEASED" $FILE_DHCP | $BIN_TR '\n' '|' | $BIN_SED 's/ {| //g' | $BIN_TR '|' '\n' | $BIN_GREP -E "$NO_ERROR" | $BIN_SORT -u | $BIN_WC -l +$BIN_GREP -E "$DHCP_ABANDONED" $FILE_DHCP | $BIN_TR '\n' '|' | $BIN_SED 's/ {| //g' | $BIN_TR '|' '\n' | $BIN_GREP -E "$NO_ERROR" | $BIN_SORT -u | $BIN_WC -l +$BIN_GREP -E "$DHCP_RESET" $FILE_DHCP | $BIN_TR '\n' '|' | $BIN_SED 's/ {| //g' | $BIN_TR '|' '\n' | $BIN_GREP -E "$NO_ERROR" | $BIN_SORT -u | $BIN_WC -l +$BIN_GREP -E "$DHCP_BOOTP" $FILE_DHCP | $BIN_TR '\n' '|' | $BIN_SED 's/ {| //g' | $BIN_TR '|' '\n' | $BIN_GREP -E "$NO_ERROR" | $BIN_SORT -u | $BIN_WC -l +$BIN_GREP -E "$DHCP_BACKUP" $FILE_DHCP | $BIN_TR '\n' '|' | $BIN_SED 's/ {| //g' | $BIN_TR '|' '\n' | $BIN_GREP -E "$NO_ERROR" | $BIN_SORT -u | $BIN_WC -l +$BIN_GREP -E "$DHCP_FREE" $FILE_DHCP | $BIN_TR '\n' '|' | $BIN_SED 's/ {| //g' | $BIN_TR '|' '\n' | $BIN_GREP -E "$NO_ERROR" | $BIN_SORT -u | $BIN_WC -l