[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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: