salida de comando
Publicado por nuke (4 intervenciones) el 26/10/2011 23:02:01
Buenas noches.
Estoy intentando montar un script que compruebe si existe un servidor de dhcp no autorizado en la red.
Si detecta que un servidor no autorizado está sirviendo ip la salida del último comando 0
Si ningún servidor de dhcp excepto el autorizado sirve ip la salida del último comando es 1
Hasta aquí todo bien:
Mi servidor autorizado es 192.168.1.50
#!/bin/sh
log=/var/log/dhcp/dhcp_discover.log
warn=/var/log/dhcp/warn
exit=$(odhcploc -p 192.168.1.20 192.168.1.50)
echo $exit > $warn
echo $warn >> $log
cat $warn | grep OFFER
echo $?
Tengo que utilizar el grep para que me muestra la salida 1 o 2, porque el comando odhcploc hecho en c, no muestra salida de error, simplemente detecta o no un server no autorizado.
Con el grep recojo si me a servido una ip o no.
Ahora me encuentro con el problema.
Si la salida del grep es 0, es decir en el fichero /var/log/dhcp/warn encuentro la cadena OFFER quiero mostrar error para posteriormente enviar un correo.
if [ "$?" -ne "1"]; then
echo "ERROR"
else
echo "OK"
fi
a ver si me podeis hechar un cable no he conseguido hacer funcionar el condicional, no me tiene en cuenta la condición, he probado tanto -ne 0 como eq 0
Estoy un poco bloqueado con el condicional. Saludos y gracias por la ayuda
Estoy intentando montar un script que compruebe si existe un servidor de dhcp no autorizado en la red.
Si detecta que un servidor no autorizado está sirviendo ip la salida del último comando 0
Si ningún servidor de dhcp excepto el autorizado sirve ip la salida del último comando es 1
Hasta aquí todo bien:
Mi servidor autorizado es 192.168.1.50
#!/bin/sh
log=/var/log/dhcp/dhcp_discover.log
warn=/var/log/dhcp/warn
exit=$(odhcploc -p 192.168.1.20 192.168.1.50)
echo $exit > $warn
echo $warn >> $log
cat $warn | grep OFFER
echo $?
Tengo que utilizar el grep para que me muestra la salida 1 o 2, porque el comando odhcploc hecho en c, no muestra salida de error, simplemente detecta o no un server no autorizado.
Con el grep recojo si me a servido una ip o no.
Ahora me encuentro con el problema.
Si la salida del grep es 0, es decir en el fichero /var/log/dhcp/warn encuentro la cadena OFFER quiero mostrar error para posteriormente enviar un correo.
if [ "$?" -ne "1"]; then
echo "ERROR"
else
echo "OK"
fi
a ver si me podeis hechar un cable no he conseguido hacer funcionar el condicional, no me tiene en cuenta la condición, he probado tanto -ne 0 como eq 0
Estoy un poco bloqueado con el condicional. Saludos y gracias por la ayuda
Valora esta pregunta


0