Documente Academic
Documente Profesional
Documente Cultură
Objetivo Específico
Investigar sobre los comandos que se utilizan para la elaboración de los scripts en el Sistema
Operativo Linux.
Elaborar un script en el Sistema Operativo Linux que permita obtener los diferentes datos que
maneja el protocolo SNMP para su posterior análisis.
JUSTIFICACIÓN
El protocolo SNMP es un protocolo que sirve para hacer gestión a una red, es por eso que existe la necesidad del
estudio y la elaboración de scripts con los que se pueden realizar análisis y estudio de los paquetes que se envían a
través de la red. Así de esta manera se puede mejorar la eficiencia de la misma y el rendimiento de todos sus
componentes.
MARCO TEÓRICO
El Protocolo Simple Network Management Protocol (SNMP) es un protocolo de la capa de aplicación que facilita el
intercambio de información de administración entre dispositivos de red, es decir, realiza gestión de red esto es un
conjunto de estructuras y primitivas que permiten tener datos concretos del tráfico que se produce en la red, así
como quien lo produce. Es parte de la familia de protocolos TCP/IP. SNMP permite a los administradores supervisar
el funcionamiento de la red, buscar y resolver sus problemas, y planear su crecimiento.
#!/bin/sh
clear
opcion="0"
h=$1 #host
p=$2 #puerto
v=$3 #version
o1=$4 #OID
o2=$5
o3=$6
o4=$7
o5=$8
o6=$9
# --------------------------------------------------------------
------------> FUNCIONES
function reporwalk() {
fec=`date`
echo "========================== REPORTE
============================" >> ReporteConsulta.txt
echo "La fecha y hora de la consulta es: $fec" >>
ReporteConsulta.txt
echo "El tipo de operacion es: SNMPWALK" >> ReporteConsulta.txt
echo "El host consultado es: $h" >> ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
echo "RESULTADO: " >> ReporteConsulta.txt
}
# ----------------------------------------------
function reporget() {
fec=`date`
echo "========================== REPORTE
============================" >> ReporteConsulta.txt
echo "La fecha y hora de la consulta es: $fec" >>
ReporteConsulta.txt
echo "El tipo de operacion es: SNMPGET" >> ReporteConsulta.txt
echo "El host consultado es: $h" >> ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
echo "RESULTADO: " >> ReporteConsulta.txt
}
# ----------------------------------------------
function reporgetnext() {
fec=`date`
echo "========================== REPORTE
============================" >> ReporteConsulta.txt
echo "La fecha y hora de la consulta es: $fec" >>
ReporteConsulta.txt
echo "El tipo de operacion es: SNMPGETNEXT" >>
ReporteConsulta.txt
echo "El host consultado es: $h" >> ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
echo "RESULTADO: " >> ReporteConsulta.txt
}
# ----------------------------------------------
function reporset() {
fec=`date`
echo "========================== REPORTE
============================" >> ReporteConsulta.txt
echo "La fecha y hora de la consulta es: $fec" >>
ReporteConsulta.txt
echo "El tipo de operacion es: SNMPSET" >> ReporteConsulta.txt
echo "El host consultado es: $h" >> ReporteConsulta.txt
}
# ----------------------------------------------
function reporwalkerror() {
fec=`date`
echo "========================== REPORTE
============================" >> ReporteError.txt
echo "La fecha y hora de la consulta es: $fec" >>
ReporteError.txt
echo "El tipo de operacion es: SNMPWALK" >> ReporteError.txt
echo "El host consultado es: $h" >> ReporteError.txt
echo " " >> ReporteError.txt
echo "RESULTADO: " >> ReporteError.txt
}
# ----------------------------------------------
function reporgeterror() {
fec=`date`
echo "========================== REPORTE
============================" >> ReporteError.txt
echo "La fecha y hora de la consulta es: $fec" >>
ReporteError.txt
echo "El tipo de operacion es: SNMPGET" >> ReporteError.txt
echo "El host consultado es: $h" >> ReporteError.txt
echo " " >> ReporteError.txt
echo "RESULTADO: " >> ReporteError.txt
}
# ----------------------------------------------
function reporgetnexterror() {
fec=`date`
echo "========================== REPORTE
============================" >> ReporteError.txt
echo "La fecha y hora de la consulta es: $fec" >>
ReporteError.txt
echo "El tipo de operacion es: SNMPGETNEXT" >> ReporteError.txt
echo "El host consultado es: $h" >> ReporteError.txt
echo " " >> ReporteError.txt
echo "RESULTADO: " >> ReporteError.txt
}
# ----------------------------------------------
function reporseterror() {
fec=`date`
echo "========================== REPORTE
============================" >> ReporteError.txt
echo "La fecha y hora de la consulta es: $fec" >>
ReporteError.txt
echo "El tipo de operacion es: SNMPSET" >> ReporteError.txt
echo "El host consultado es: $h" >> ReporteError.txt
}
# --------------------------------------------------------------
-----------------------------------------
par="$#" #almaceno el número de parametros ingresados al
script
#echo se le han pasado $par arguments
1)
#
================================================================
=
echo "OPCION SELECCIONADA: SNMPWALK"
# -------------------------------------> OID 6
if [ $par = 9 ]
then
snmpwalk -v $v -c public $h $o6 > zom.txt # Creo el
archivo temporal para analizar error
aux=`cat zom.txt | cut -d " " -f 3 | grep "No"` #
Analizo el temporal y verifico si hay error o no.
2)
#
================================================================
=
echo "OPCION SELECCIONADA: SNMPGET"
# -------------------------------------> OID 6
if [ $par = 9 ]
then
snmpget -v $v -c public $h $o6 > zom.txt
aux=`cat zom.txt | cut -d " " -f 3 | grep "No"`
if [ $aux = "No" ]
then
reporgeterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o6 >> ReporteError.txt
snmpget -v $v -c public $h $o6 >>
ReporteError.txt
echo " " >> ReporteError.txt
clear
else
reporget
echo "El OID consultado es: " >> ReporteConsulta.txt
snmptranslate -On -IR $o6 >> ReporteConsulta.txt
snmpget -v $v -c public $h $o6 >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
clear
fi
fi
# -------------------------------------> OID 5
if [ $par -ge 8 -a $par -le 9 ]
then
snmpget -v $v -c public $h $o5 > zom.txt
aux=`cat zom.txt | cut -d " " -f 3 | grep "No"`
if [ $aux = "No" ]
then
reporgeterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o5 >> ReporteError.txt
snmpget -v $v -c public $h $o5 >>
ReporteError.txt
echo " " >> ReporteError.txt
clear
else
reporget
echo "El OID consultado es: " >>
ReporteConsulta.txt
snmptranslate -On -IR $o5 >> ReporteConsulta.txt
snmpget -v $v -c public $h $o5 >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
clear
fi
fi
# -------------------------------------> OID 4
if [ $par -ge 7 -a $par -le 9 ]
then
snmpget -v $v -c public $h $o4 > zom.txt
aux=`cat zom.txt | cut -d " " -f 3 | grep "No"`
if [ $aux = "No" ]
then
reporgeterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o4 >> ReporteError.txt
snmpget -v $v -c public $h $o4 >>
ReporteError.txt
echo " " >> ReporteError.txt
clear
else
reporget
echo "El OID consultado es: " >>
ReporteConsulta.txt
snmptranslate -On -IR $o4 >> ReporteConsulta.txt
snmpget -v $v -c public $h $o4 >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
clear
fi
fi
# -------------------------------------> OID 3
if [ $par -ge 6 -a $par -le 9 ]
then
snmpget -v $v -c public $h $o3 > zom.txt
aux=`cat zom.txt | cut -d " " -f 3 | grep "No"`
if [ $aux = "No" ]
then
reporgeterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o3 >> ReporteError.txt
snmpget -v $v -c public $h $o3 >>
ReporteError.txt
echo " " >> ReporteError.txt
clear
else
reporget
echo "El OID consultado es: " >>
ReporteConsulta.txt
snmptranslate -On -IR $o3 >> ReporteConsulta.txt
snmpget -v $v -c public $h $o3 >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
clear
fi
fi
# -------------------------------------> OID 2
if [ $par -ge 5 -a $par -le 9 ]
then
snmpget -v $v -c public $h $o2 > zom.txt
aux=`cat zom.txt | cut -d " " -f 3 | grep "No"`
if [ $aux = "No" ]
then
reporgeterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o2 >> ReporteError.txt
snmpget -v $v -c public $h $o2 >>
ReporteError.txt
echo " " >> ReporteError.txt
clear
else
reporget
echo "El OID consultado es: " >>
ReporteConsulta.txt
snmptranslate -On -IR $o2 >> ReporteConsulta.txt
snmpget -v $v -c public $h $o2 >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
clear
fi
fi
# -------------------------------------> OID 1
if [ $par -ge 4 -a $par -le 9 ]
then
snmpget -v $v -c public $h $o1 > zom.txt
aux=`cat zom.txt | cut -d " " -f 3 | grep "No"`
if [ $aux = "No" ]
then
reporgeterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o1 >> ReporteError.txt
snmpget -v $v -c public $h $o1 >>
ReporteError.txt
echo " " >> ReporteError.txt
clear
else
reporget
echo "El OID consultado es: " >>
ReporteConsulta.txt
snmptranslate -On -IR $o1 >> ReporteConsulta.txt
snmpget -v $v -c public $h $o1 >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
clear
fi
fi
rm zom.txt
# ---------------------------------------------------------
--------
3)
echo "OPCION CONSULTA SNMPSET ----"
fec=`date`
echo " "
#------------------------------------------------> OID 6
if [ $par = 9 ]
then
echo "Ingrese el tipo de dato para parámetro $o6 : "
echo "i-INTEGER; u-UNSIGNED; s-STRING; x-HEX STRING; d-
DECIMAL STRING; n-NULLOBJ; o-OBJID; t-TIMETICKS; a-IPADDRESS; b-
BITS"
read tipo # ingreso por teclado el tipo de valor que
necesito ingresar.
echo "Ingrese el valor a asignar: "
read valor # ingreso por teclado el valor.
echo "Reiniciando servicio snmpd ...."
service snmpd restart # reinicio el servicio snmpd
clear
snmpset -v $v -c public $h $o6 $tipo $valor 2> zom.txt
# creo el archivo temporal para verificar error
aux1=`cat zom.txt | cut -d " " -f 1 | grep "Error"` #
filtro un tipo de error - Error in packet
aux2=`cat zom.txt | cut -d " " -f 2 | grep "Bad"` #
filtro un tipo de error - Bad value
#echo mi1 $aux1
#echo mi2 $aux2
if [ $aux1 = "Error" -o $aux2 = "Bad" ] #verifico si existe
uno de los dos tipos de error.
then
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::
reporseterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o6 >> ReporteError.txt
echo "El tipo de valor ingresado es: $tipo" >>
ReporteError.txt
echo "El valor ingresado es: $valor" >>
ReporteError.txt
echo " " >> ReporteError.txt
echo "RESULTADO: " >> ReporteError.txt
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::
snmpset -v $v -c public $h $o6 $tipo $valor 2>>
ReporteError.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::
else
reporset
echo "El OID consultado es: " >> ReporteConsulta.txt
snmptranslate -On -IR $o6 >> ReporteConsulta.txt
echo "El tipo de valor ingresado es: $tipo" >>
ReporteConsulta.txt
echo "El valor ingresado es: $valor" >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
echo "RESULTADO: " >> ReporteConsulta.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::
snmpset -v $v -c public $h $o6 $tipo $valor >>
ReporteConsulta.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::
clear
fi
fi
#------------------------------------------------> OID 5
if [ $par -ge 8 -a $par -le 9 ]
then
echo "Ingrese el tipo de dato para parámetro $o5 : "
echo "i-INTEGER; u-UNSIGNED; s-STRING; x-HEX STRING; d-
DECIMAL STRING; n-NULLOBJ; o-OBJID; t-TIMETICKS; a-IPADDRESS; b-
BITS"
read tipo
echo "Ingrese el valor a asignar: "
read valor
echo "Reiniciando servicio snmpd ...."
service snmpd restart
clear
snmpset -v $v -c public $h $o5 $tipo $valor 2> zom.txt
aux1=`cat zom.txt | cut -d " " -f 1 | grep "Error"`
aux2=`cat zom.txt | cut -d " " -f 2 | grep "Bad"`
#echo mi1 $aux1
#echo mi2 $aux2
if [ $aux1 = "Error" -o $aux2 = "Bad" ]
then
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::
reporseterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o5 >> ReporteError.txt
echo "El tipo de valor ingresado es: $tipo" >>
ReporteError.txt
echo "El valor ingresado es: $valor" >>
ReporteError.txt
echo " " >> ReporteError.txt
echo "RESULTADO: " >> ReporteError.txt
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::
snmpset -v $v -c public $h $o5 $tipo $valor 2>>
ReporteError.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::
else
reporset
echo "El OID consultado es: " >> ReporteConsulta.txt
snmptranslate -On -IR $o5 >> ReporteConsulta.txt
echo "El tipo de valor ingresado es: $tipo" >>
ReporteConsulta.txt
echo "El valor ingresado es: $valor" >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
echo "RESULTADO: " >> ReporteConsulta.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::
snmpset -v $v -c public $h $o5 $tipo $valor >>
ReporteConsulta.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::
clear
fi
fi
#------------------------------------------------> OID 4
if [ $par -ge 7 -a $par -le 9 ]
then
echo "Ingrese el tipo de dato para parámetro $o4 : "
echo "i-INTEGER; u-UNSIGNED; s-STRING; x-HEX STRING; d-
DECIMAL STRING; n-NULLOBJ; o-OBJID; t-TIMETICKS; a-IPADDRESS; b-
BITS"
read tipo
echo "Ingrese el valor a asignar: "
read valor
echo "Reiniciando servicio snmpd ...."
service snmpd restart
clear
snmpset -v $v -c public $h $o4 $tipo $valor 2> zom.txt
aux1=`cat zom.txt | cut -d " " -f 1 | grep "Error"`
aux2=`cat zom.txt | cut -d " " -f 2 | grep "Bad"`
#echo mi1 $aux1
#echo mi2 $aux2
if [ $aux1 = "Error" -o $aux2 = "Bad" ]
then
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::
reporseterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o4 >> ReporteError.txt
echo "El tipo de valor ingresado es: $tipo" >>
ReporteError.txt
echo "El valor ingresado es: $valor" >>
ReporteError.txt
echo " " >> ReporteError.txt
echo "RESULTADO: " >> ReporteError.txt
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::
snmpset -v $v -c public $h $o4 $tipo $valor 2>>
ReporteError.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::
else
reporset
echo "El OID consultado es: " >> ReporteConsulta.txt
snmptranslate -On -IR $o4 >> ReporteConsulta.txt
echo "El tipo de valor ingresado es: $tipo" >>
ReporteConsulta.txt
echo "El valor ingresado es: $valor" >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
echo "RESULTADO: " >> ReporteConsulta.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::
snmpset -v $v -c public $h $o4 $tipo $valor >>
ReporteConsulta.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::
clear
fi
fi
#------------------------------------------------> OID 3
if [ $par -ge 6 -a $par -le 9 ]
then
echo "Ingrese el tipo de dato para parámetro $o3 : "
echo "i-INTEGER; u-UNSIGNED; s-STRING; x-HEX STRING; d-
DECIMAL STRING; n-NULLOBJ; o-OBJID; t-TIMETICKS; a-IPADDRESS; b-
BITS"
read tipo
echo "Ingrese el valor a asignar: "
read valor
echo "Reiniciando servicio snmpd ...."
service snmpd restart
clear
snmpset -v $v -c public $h $o3 $tipo $valor 2> zom.txt
aux1=`cat zom.txt | cut -d " " -f 1 | grep "Error"`
aux2=`cat zom.txt | cut -d " " -f 2 | grep "Bad"`
#echo mi1 $aux1
#echo mi2 $aux2
if [ $aux1 = "Error" -o $aux2 = "Bad" ]
then
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::::
reporseterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o3 >> ReporteError.txt
echo "El tipo de valor ingresado es: $tipo" >>
ReporteError.txt
echo "El valor ingresado es: $valor" >>
ReporteError.txt
echo " " >> ReporteError.txt
echo "RESULTADO: " >> ReporteError.txt
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::
snmpset -v $v -c public $h $o3 $tipo $valor 2>>
ReporteError.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::
else
reporset
echo "El OID consultado es: " >> ReporteConsulta.txt
snmptranslate -On -IR $o3 >> ReporteConsulta.txt
echo "El tipo de valor ingresado es: $tipo" >>
ReporteConsulta.txt
echo "El valor ingresado es: $valor" >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
echo "RESULTADO: " >> ReporteConsulta.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::
snmpset -v $v -c public $h $o3 $tipo $valor >>
ReporteConsulta.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::
clear
fi
fi
#------------------------------------------------> OID 2
if [ $par -ge 5 -a $par -le 9 ]
then
echo "Ingrese el tipo de dato para parámetro $o2 : "
echo "i-INTEGER; u-UNSIGNED; s-STRING; x-HEX STRING; d-
DECIMAL STRING; n-NULLOBJ; o-OBJID; t-TIMETICKS; a-IPADDRESS; b-
BITS"
read tipo
echo "Ingrese el valor a asignar: "
read valor
echo "Reiniciando servicio snmpd ...."
service snmpd restart
clear
snmpset -v $v -c public $h $o2 $tipo $valor 2> zom.txt
aux1=`cat zom.txt | cut -d " " -f 1 | grep "Error"`
aux2=`cat zom.txt | cut -d " " -f 2 | grep "Bad"`
#echo mi1 $aux1
#echo mi2 $aux2
if [ $aux1 = "Error" -o $aux2 = "Bad" ]
then
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::
reporseterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o2 >> ReporteError.txt
echo "El tipo de valor ingresado es: $tipo" >>
ReporteError.txt
echo "El valor ingresado es: $valor" >>
ReporteError.txt
echo " " >> ReporteError.txt
echo "RESULTADO: " >> ReporteError.txt
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::
snmpset -v $v -c public $h $o2 $tipo $valor 2>>
ReporteError.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::
else
reporset
echo "El OID consultado es: " >> ReporteConsulta.txt
snmptranslate -On -IR $o2 >> ReporteConsulta.txt
echo "El tipo de valor ingresado es: $tipo" >>
ReporteConsulta.txt
echo "El valor ingresado es: $valor" >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
echo "RESULTADO: " >> ReporteConsulta.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::
snmpset -v $v -c public $h $o2 $tipo $valor >>
ReporteConsulta.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::
clear
fi
fi
#------------------------------------------------> OID 1
if [ $par -ge 4 -a $par -le 9 ]
then
echo "Ingrese el tipo de dato para parámetro $o1 : "
echo "i-INTEGER; u-UNSIGNED; s-STRING; x-HEX STRING; d-
DECIMAL STRING; n-NULLOBJ; o-OBJID; t-TIMETICKS; a-IPADDRESS; b-
BITS"
read tipo
echo "Ingrese el valor a asignar: "
read valor
echo "Reiniciando servicio snmpd ...."
service snmpd restart
clear
snmpset -v $v -c public $h $o2 $tipo $valor 2> zom.txt
aux1=`cat zom.txt | cut -d " " -f 1 | grep "Error"`
aux2=`cat zom.txt | cut -d " " -f 2 | grep "Bad"`
#echo mi1 $aux1
#echo mi2 $aux2
if [ $aux1 = "Error" -o $aux2 = "Bad" ]
then
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::
reporseterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o1 >> ReporteError.txt
echo "El tipo de valor ingresado es: $tipo" >>
ReporteError.txt
echo "El valor ingresado es: $valor" >>
ReporteError.txt
echo " " >> ReporteError.txt
echo "RESULTADO: " >> ReporteError.txt
#::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
:::::::::::::
snmpset -v $v -c public $h $o1 $tipo $valor 2>>
ReporteError.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::
else
reporset
echo "El OID consultado es: " >> ReporteConsulta.txt
snmptranslate -On -IR $o1 >> ReporteConsulta.txt
echo "El tipo de valor ingresado es: $tipo" >>
ReporteConsulta.txt
echo "El valor ingresado es: $valor" >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
echo "RESULTADO: " >> ReporteConsulta.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::
snmpset -v $v -c public $h $o1 $tipo $valor >>
ReporteConsulta.txt
#:::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::::::::::
clear
fi
fi
rm zom.txt
echo "FIN DE CONSULTA SNMPSET"
;;
4)
echo "OPCION 4 ----"
clear
echo .
echo .
snmptrapd -f -Le -F "HOSTANME: %A %a\n TIPO TRAP: %W.%q\n
FECHA: %l:%m:%y %h:%j\n Enterprise: %N"
# ETIQUETAS RESULTADO
# %A -----> nombre de host del agente
# %a -----> direccion IP
# %W -----> tipo de trap generica
# %q -----> tipo de trap especifica
# %l -----> dÃa
# %m -----> mes
# %y -----> año
# %h -----> hora
# %j -----> minuto
# %N -----> enterprise
;;
5)
#
================================================================
=
echo "OPCION SELECCIONADA: SNMPGETNEXT"
# -------------------------------------> OID 6
if [ $par = 9 ]
then
snmpgetnext -v $v -c public $h $o6 > zom.txt
aux=`cat zom.txt | cut -d " " -f 3 | grep "No"`
if [ $aux = "No" ]
then
reporgetnexterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o6 >> ReporteError.txt
snmpgetnext -v $v -c public $h $o6 >>
ReporteError.txt
echo " " >> ReporteError.txt
clear
else
reporgetnext
echo "El OID consultado es: " >> ReporteConsulta.txt
snmptranslate -On -IR $o6 >> ReporteConsulta.txt
snmpgetnext -v $v -c public $h $o6 >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
clear
fi
fi
# -------------------------------------> OID 5
if [ $par -ge 8 -a $par -le 9 ]
then
snmpgetnext -v $v -c public $h $o5 > zom.txt
aux=`cat zom.txt | cut -d " " -f 3 | grep "No"`
if [ $aux = "No" ]
then
reporgetnexterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o5 >> ReporteError.txt
snmpgetnext -v $v -c public $h $o5 >>
ReporteError.txt
echo " " >> ReporteError.txt
clear
else
reporgetnext
echo "El OID consultado es: " >>
ReporteConsulta.txt
snmptranslate -On -IR $o5 >> ReporteConsulta.txt
snmpgetnext -v $v -c public $h $o5 >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
clear
fi
fi
# -------------------------------------> OID 4
if [ $par -ge 7 -a $par -le 9 ]
then
snmpgetnext -v $v -c public $h $o4 > zom.txt
aux=`cat zom.txt | cut -d " " -f 3 | grep "No"`
if [ $aux = "No" ]
then
reporgetnexterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o4 >> ReporteError.txt
snmpgetnext -v $v -c public $h $o4 >>
ReporteError.txt
echo " " >> ReporteError.txt
clear
else
reporgetnext
echo "El OID consultado es: " >>
ReporteConsulta.txt
snmptranslate -On -IR $o4 >> ReporteConsulta.txt
snmpgetnext -v $v -c public $h $o4 >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
clear
fi
fi
# -------------------------------------> OID 3
if [ $par -ge 6 -a $par -le 9 ]
then
snmpgetnext -v $v -c public $h $o3 > zom.txt
aux=`cat zom.txt | cut -d " " -f 3 | grep "No"`
if [ $aux = "No" ]
then
reporgetnexterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o3 >> ReporteError.txt
snmpgetnext -v $v -c public $h $o3 >>
ReporteError.txt
echo " " >> ReporteError.txt
clear
else
reporgetnext
echo "El OID consultado es: " >>
ReporteConsulta.txt
snmptranslate -On -IR $o3 >> ReporteConsulta.txt
snmpgetnext -v $v -c public $h $o3 >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
clear
fi
fi
# -------------------------------------> OID 2
if [ $par -ge 5 -a $par -le 9 ]
then
snmpgetnext -v $v -c public $h $o2 > zom.txt
aux=`cat zom.txt | cut -d " " -f 3 | grep "No"`
if [ $aux = "No" ]
then
reporgetnexterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o2 >> ReporteError.txt
snmpgetnext -v $v -c public $h $o2 >>
ReporteError.txt
echo " " >> ReporteError.txt
clear
else
reporgetnext
echo "El OID consultado es: " >>
ReporteConsulta.txt
snmptranslate -On -IR $o2 >> ReporteConsulta.txt
snmpgetnext -v $v -c public $h $o2 >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
clear
fi
fi
# -------------------------------------> OID 1
if [ $par -ge 4 -a $par -le 9 ]
then
snmpgetnext -v $v -c public $h $o1 > zom.txt
aux=`cat zom.txt | cut -d " " -f 3 | grep "No"`
if [ $aux = "No" ]
then
reporgetnexterror
echo "El OID consultado es: " >> ReporteError.txt
snmptranslate -On -IR $o1 >> ReporteError.txt
snmpgetnext -v $v -c public $h $o1 >>
ReporteError.txt
echo " " >> ReporteError.txt
clear
else
reporgetnext
echo "El OID consultado es: " >>
ReporteConsulta.txt
snmptranslate -On -IR $o1 >> ReporteConsulta.txt
snmpgetnext -v $v -c public $h $o1 >>
ReporteConsulta.txt
echo " " >> ReporteConsulta.txt
clear
fi
fi
rm zom.txt
# ---------------------------------------------------------
--------
6)
clear
echo "OPCION SALIR"
echo "GRACIAS POR UTILIZAR NUESTRO PROGRAMA..."
exit
;;
esac
done
MENÚ
SNMPTRAP
REPORTE CONSULTA
CONCLUSIONES
SNMP facilita la comunicación entre la estación administradora y el agente de un dispositivo de red (o
nodo administrado), permitiendo que los agentes transmitan datos estadísticos (variables) a través de la
red a la estación de administración.
Las TRAP informa fallos como la perdida de comunicación con un vecino transmitida por el agente
recibida por el nodo administrador.
El poseer archivos con información de la administración de la red son de gran importancia ya que nos
permite realizar la optimización de los recursos y mejorar la eficiencia de la misma.
SNMP get solicita uno o más (lista) atributos (valores) de un objeto (o variable), transmitida por el nodo
administrador y recibida por el agente que contesta.
SNMP set actualiza uno o varios atributos de un objeto transmitido por el nodo administrador y recibida por
el agente.
Utilizando los diferentes filtros y herramientas que nos ofrece la programación del Sistema Operativo Linux
podemos obtener información específica y detallada sobre aspectos como OID de origen y destino,
fechas, horas de los procesos de los objetos gestionados, así como, los parámetros necesarios de los
objetos gestionados.
Al usar la versión 2c de snmp la salida de error usan 2> no funciona para errores de comando, aunque los
errores de sintaxis se guardan adecuadamente en un archivo de texto.
RECOMENDACIONES
Es necesario siempre implementar sistemas de gestión para las redes puesto que ayudan a la seguridad y
mejorar la eficiencia de las mismas.
Se recomienda el uso de la sentencia for para evitar la repetición de sentencias if consecutivas,
reduciendo el tiempo de procesamiento, además de reducir el tamaño del programa que se está
implementando.
Es importante el conocimiento de la estructura de los archivos snmpd.conf y snmptrapd.conf para realizar
una ejecución adecuada y rápida de los servicios que se desea implementar.
BIBLIOGRAFIA
Simple Network Management Protocol
http://es.wikipedia.org/wiki/Simple_Network_Management_Protocol[En línea].
Todos los integrantes del grupo participamos de igual manera es por eso que los
porcentajes para cada uno son:
Montoya Oscar 33.33%
Guanoluisa Carina 33.33%
Villenas Alejandra 33.33%