Script com SNMP [RESOLVIDO]

1. Script com SNMP [RESOLVIDO]

Roberto Costa
asparion

(usa Ubuntu)

Enviado em 09/11/2023 - 08:31h

Ola amigos VOL, uma ajuda com um script SNMP

Com essa linha eu identifico as interfacesName:

snmpwalk -v2c -c public 192.168.0.244 ifName

# Resultado
IF-MIB::ifName.1 = STRING: Et0/0
IF-MIB::ifName.2 = STRING: Et0/1
IF-MIB::ifName.3 = STRING: Et0/2
IF-MIB::ifName.4 = STRING: Et0/3
IF-MIB::ifName.5 = STRING: Et1/0
IF-MIB::ifName.6 = STRING: Et1/1
IF-MIB::ifName.7 = STRING: Et1/2
IF-MIB::ifName.8 = STRING: Et1/3
IF-MIB::ifName.17 = STRING: Vo0
IF-MIB::ifName.18 = STRING: Nu0


Com essa Linha eu capturo as ID de cada interface

snmpwalk -v2c -c public 192.168.0.244 IF-MIB::ifName | grep Et | awk '{ print $1 }' | sed -e 's/[^0-9 ]//ig'

# Resultado
1
2
3
4
5
6
7
8


Com essa Linha eu capturo os pacotes de entrada

snmpget -v2c -c public 192.168.0.244 IF-MIB::ifInOctets.1 |awk {'print $4'}

# Resultado
1180516


Com essa Linha eu capturo os pacotes de saida

snmpget -v2c -c public 192.168.0.244 IF-MIB::ifOutOctets.1 |awk {'print $4'}

# Resultado
2593516


Com isso eu montei o seguinte script que so serve para uma interface.

#!/bin/bash

address="192.168.0.244"
interface="Et0/0"

# Caputar ID da interface
id=$(snmpwalk -v2c -c public $address IF-MIB::ifName | grep $interface | awk '{ print $1 }' | sed -e 's/[^0-9 ]//ig')

# Capturar pacotes de entrada
entrada1=$(snmpget -v2c -c public $address IF-MIB::ifInOctets.1 |awk {'print $4'} )
sleep 5
entrada2=$(snmpget -v2c -c public $address IF-MIB::ifInOctets.1 |awk {'print $4'} )

# Capturar pacotes de Saida
saida1=$(snmpget -v2c -c public $address IF-MIB::ifOutOctets.1 |awk {'print $4'} )
sleep 5
saida2=$(snmpget -v2c -c public $address IF-MIB::ifOutOctets.1 |awk {'print $4'} )

# Calculo do tamanho dos pacotes
trafficIn=$(echo "$entrada2 - $entrada1 " | bc)
trafficOut=$(echo "$saida2 - $saida1 " | bc)

# Display do resultado
echo "Interface: $interface = Traffic In: $trafficIn, Traffic Out: $trafficOut"



Eis a pergunta, como seria para ter o resultado de todas as interfaces?

Valeu


  


2. MELHOR RESPOSTA

Mauriciodez
Mauriciodez

(usa Debian)

Enviado em 09/11/2023 - 09:39h

experimenta colocar em loop ...

for n in `snmpwalk -v2c -c public 192.168.0.244 ifName | awk '{print $NF}'`;do
echo $n
comando 2
comando 3
done



------------------------------------------------------| Linux User #621728 |------------------------------------------------------

" Nem sempre é amigo aquele que te tira do buraco !!! ( Saddam Hussein )"

------------------------------------------------------| Linux User #621728 |------------------------------------------------------







Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts