1
0
Fork 0

nagios: some enhancements + fixes for network_volume

This commit is contained in:
Chl 2021-08-29 15:27:33 +02:00
parent 737f61e844
commit 0d299cd3a0

View file

@ -1,10 +1,54 @@
#!/bin/sh
EXCLUDE_REGEXP='(lo|bond|vmbr)'
#
# Help function
#
usage() {
cat <<EOF
This script simply outputs the number of packets and volume of data
emitted and received by network devices. Its status is always 0/OK.
Usage :
$0 [-e egrep_exclude_pattern]
Example :
$0 -e '(lo|^br-|^veth)'
Default values:
egrep_exclude_pattern: $EXCLUDE_REGEXP
EOF
}
#
# Loop on parameters + tests
#
while getopts he: f; do
case "$f" in
'h')
usage
exit
;;
'e')
EXCLUDE_REGEXP="$OPTARG"
;;
\?)
usage
exit 1
;;
esac
done
# We don't bother buffering, let's output as we go
printf "OK |"
for i in $( cat /proc/net/dev | sed -n 's/^[[:space:]]*\([a-z0-9\.]\+\):.*/\1/p' ); do
if [ $( echo "$i" | egrep -c '(lo|bond|vmbr)' ) -gt 0 ]; then
# Loop on each device
for i in $( cat /proc/net/dev | sed -n 's/^[[:space:]]*\([a-z0-9\.\-]\+\):.*/\1/p' | sort ); do
if [ $( echo "$i" | egrep -c -e "$EXCLUDE_REGEXP" ) -gt 0 ]; then
continue
fi
VOLUME_RECU="$( cat /proc/net/dev | sed -n "s/^[[:space:]]*$i:[[:space:]]*//p" | sed 's/[[:space:]]\+/ /g' | cut -d " " -f 1 )"