#!/bin/bash

# Dossier où stocker les mesures
DIR=/var/nagios/check_snmp_traffic

if [ "$1" == "" ]
then
 echo "Indiquer l'hôte en premier paramètre."
 exit 3
fi

CMD="/usr/bin/snmpwalk $1 -c public IF-MIB::ifInOctets -m ALL -v 2c | cut -d' ' -f4"

# On change le séparateur de champ
IFS=$'\n'

# On mesure les résultats et on les convertit en listes
list1=( `cat $DIR/$1` )
eval $CMD > $DIR/$1
list2=( `cat $DIR/$1` )

if [ "$list1" == "" ]
then 
 echo "OK - First measure done"
 exit
fi

total=0
# $i compteur de 0 à nombre de ports - 1
for i in `seq 0 $((${#list1[@]} - 1))`
do
 # Différence entre les deux mesures pour un port
 diff=$((${list2[$i]} - ${list1[$i]}))
 # Prévention des cas négatifs (overflow des entiers 32bits)
 if (( "$diff" > 0 ))
 then
  total=$(($total + $diff))
 fi
done

echo "OK - $total bytes since last check|traffic=${total}B"
