Je cherche à créer un script de surveillance SNMP qui récupère chaque valeur de paquet de chaque port du commutateur via SNMP.Script de réseau SNMP
Malheureusement, le script que j'ai semble me donner des erreurs là où se trouvent les variables.
Oldin-1 = 1: command not found
Est-ce que quelqu'un sait ce que serait une meilleure façon d'augmenter les variables dans chaque numéro de port?
#Defining Variables
switch=192.168.0.4
firstport=1
lastport=26
sleeptime=5
function switchinfo {
for ((counter=$firstport; counter<=$lastport; counter++))
do
sleep $sleeptime
# echo "Working..."
#Connect to Host
in-$counter=`snmpget -v 2c -c public $switch IF-MIB::ifInOctets.$counter -Ov`
out-$counter=`snmpget -v 2c -c public $switch IF-MIB::ifOutOctets.$counter -Ov`
#Strip out the value from the string
in-$counter=$(echo $in-$counter | cut -c 12-)
out-$counter=$(echo $out-$counter | cut -c 12-)
#Get the difference between the old and current
diffin-$counter=$((in-$counter - oldin-$counter))
diffout-$counter=$((out-$counter - oldout-$counter))
inbps-$counter=$((diffin-$counter/sleeptime))
outbps-$counter=$((diffout-$counter/sleeptime))
#Basic Data Validation - Can't have values less than 0!
if [[ $inbps-$counter -lt 0 || $outbps-$counter -lt 0 ]];
then
#There is an issue with one or more readings, get fresh ones
#then wait for the next loop to calculate again.
echo "We have a problem...moving to plan B"
in=`snmpget -v 2c -c public $switch IF-MIB::ifInOctets.$counter -Ov`
out=`snmpget -v 2c -c public $switch IF-MIB::ifOutOctets.$counter -Ov`
#Strip out the value from the string
in-$counter=$(echo $in-$counter | cut -c 12-)
out-$counter=$(echo $out-$counter | cut -c 12-)
else
#Output the current traffic
echo "Main current inbound traffic for Port $counter: $inbps-$counter bps"
echo "Main current outbound traffic for Port $counter: $outbps-$counter bps"
#Move the current variables to the old ones
oldin-$counter=$in-$counter
oldout-$counter=$out-$counter
fi
done
}
echo "Press [CTRL+C] to stop..."
while :
do
switchinfo
done