Estrarre informazioni Hardware dagli apparati Cisco

ciscoHo creato un simpatico script che utilizza il protocollo SNMP per estrarre informazioni utili da un elenco di router. Per impostazione predefinita, lo script memorizza i dati in formato CSV in modo che lo si potrà facilmente importare in un foglio di calcolo per l’analisi.

#!/bin/sh
#
#    inventory.sh -- a script to extract valuable information
#                    from a list of routers. (Name, Type, IOS version)
#
#
# Set behaviour
public="home"
workingdir="/home/thomasmilian/temp"
#
LOG=$workingdir/RESULT.csv
infile=$workingdir/RTR_LIST
snmp="/usr/bin/snmpget -v 2c -c $public"
#
while read device
do
  $snmp $device sysName.0 > /dev/null
  if [ "$?" = "0" ] ; then
    rtr=`$snmp $device .1.3.6.1.4.1.9.2.1.3.0 | cut -f2 -d\" `
    type2=`$snmp $device .1.3.6.1.4.1.9.9.25.1.1.1.2.3 | cut -f2 -d$ `
    ios=`$snmp $device .1.3.6.1.4.1.9.9.25.1.1.1.2.5 | cut -f2 -d$ `
    prot=`$snmp $device .1.3.6.1.4.1.9.9.25.1.1.1.2.4 | cut -f2 -d$ `
    echo "$device, $rtr, $type2, $ios, $prot" >> $LOG
  fi
done < $infile

 

Lo script estrae informazioni hardware e sulla versione IOS direttamente dai router tramite SNMP. Questo assicura che i dati siano aggiornati. Per impostazione predefinita, lo script cattura il nome del dispositivo, il tipo, la versione dell’ IOS e le sue caratteristiche successivamente memorizza queste informazioni raccolte in un file di formato CSV chiamato Result.csv.Questo script richiede che sia installato sulla macchina di log NET-SNMP per raccogliere le informazioni via SNMP. È possibile utilizzare un diverso pacchetto SNMP, se si preferisce, ma poi sarà necessario modificare la sintassi in modo appropriato. Lo script si aspetta di trovare snmpget eseguibile nella directory /usr/bin. Anche in questo caso, se si mantiene questo file in una posizione diversa, sarà necessario definire la posizione corretta nella variabile snmp.Prima di eseguirlo in rete, è necessario modificare due variabili. La prima è la variabile pubblic. Questo valore deve contenere la stringa di sola lettura della comunità SNMP. La seconda variabile che sarà necessaria impostare è la workingdir, che deve contenere il nome della directory che si desidera eseguire lo script.Infine, sarà necessario creare un file chiamato RTR_LIST che contiene i nomi di tutti i router, con un nome su ogni riga. Lo script si aspetta di trovare questo file nella directory di lavoro.



Lascia un commento

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.