Re: Orientacion sobre script , Mejor manera de saber si la red esta up.
El Miércoles, 25 de Enero de 2006 22:39, saegen@gmail.com escribió:
> Hola a todos , agradeceria le echarais un vistazo al script de abajo y me
> orientarais un poco de lo que deberia de hacer de otra manera , comentaros
> que este script va a estar colocado en una maquina que bajo ciertas
> circunstancias se desconecta de la red automaticamente , a priori es
> imposible saber cuando va a hacerlo , osea que antes de lanzarlo ( se va a
> hacer monitorizando la carga , cuando sea baja ) he de verificar si esta en
> red , he investigado maneras de verificar las targetas ( sale por tres , 2
> pci y una wi-fi) pero no he encontrado nada que sea portable , entonces
> decidi hacerlo con un ping ¿ seria esto lo mas correcto ? ¿ hay alguna
> manera de preguntarle al kernel si esta "en linea" sin tener que conocer
> que targetas hay , en definitiva no me enrrolo mas creo que ya ha quedado
> claro. Agradezco vuestra ayuda , un saludo.
>
> #!/bin/bash
> ##Guion para mantenimiento para ejecutar por carga y con cron
> PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
> case "$1" in
> start) #<<<ARRANQUE MANUAL O CON INIT
> ping -c1 google.com
> redon=`echo $?`
> if [ "0" -eq "$redon" ]; then
> echo -n "Comenzando mantenimiento de actualizaciones y copia al
> servidor remoto de la BD del dia......."
> date "+%A, %d-%B-%Y, %R:%S"
> apt-get update
> apt-get autoclean
> apt-get -d dist-upgrade
> ..... MAS SENTENCIAS DE MANTENIMIENTO........
> echo "done."
> exit 0
> else
> echo -n "no realizado, ( falta de conexion ó error )"
> exit 1
> fi
> ;;
> startcron) #<<<ARRANQUE CON CRON
> redon=ping -c1 google.com
> ........................................... Y SIGUE
Hombre, tal vez no sea la manera más "elegante", pero no se me ocurre ningún
motivo para descartarla y declararla no fiable. Yo al menos haría eso mismo.
De hecho te comento que existe un servicio llamado "monit" que sirve para
monitorizar si algún servidor se cae (apache, pppd...). Concretamente en un
ejemplo que yo he usado, y que obtuve de un tercero, se comprobada si pppd
seguía levantado mediante esta configuracion de "monitrc":
check process pppd with pidfile /var/run/ppp0.pid
start program = "/usr/bin/pon dsl-provider"
stop program = "/usr/bin/poff dsl-provider"
if failed host www.google.es port 80 then restart
if 5 restarts within 5 cycles then timeout
Fíjate en la línea:
if failed host www.google.es port 80
No sé cómo lo hará, desde luego aunque lo parezca no usa el comando "host" ya
que a dicho comando no se le puede decir nada respecto al puerto destino (no
tendría sentido, "host" es para el tema de DNS).
Tal vez haga un telnet a google.com al puerto 80, ni idea.
En cualquier caso lo que quiero decir es que la forma de comprobar si la
máquina está en red es ponerse en contacto con el exterior.
Lo que me pregunto es cuántos servidores se irían al carajo si algún día
Google.com se cae... porque vamos... la prueba UNIVERSAL es "ping
google.com".
--
y hasta aquí puedo leer...
Reply to: