2008-10-11 12 views
8

Estoy escribiendo un script que acciona un sistema a través de la red. Y luego necesito ejecutar algunos comandos en el otro host. ¿Cómo puedo saber si el sistema se ha encendido?¿Cómo sé si un sistema se ha encendido?

Mi lenguaje de programación es Perl y el host de destino es RHEL5.

¿Hay alguna información de interrupción del kernel o de inicio de red que indique que el sistema se ha encendido y que el sistema operativo se ha cargado?

[En un escenario diferente] También me preguntaba por si acaso si solo enciendo mi máquina manualmente. cuando se dice exactamente que se ha encendido. y cuándo se supone que el sistema operativo se ha iniciado completamente para una operación relacionada con la red, como ejecutar allí un comando de red. ¿Qué sucede si el sistema está en DHCP? ¿Cómo podría un sistema remoto buscar esta máquina? Supongo que es posible a través de la dirección MAC. pero si estoy equivocado].

Si he perdido alguna información, no dude en preguntarme. Si tienes alguna sugerencia para hacer la tarea más fácil por favor :) superficie

Gracias imkin

Respuesta

12

Bueno, yo diría que el sistema se inicia cuando se puede llevar a cabo la solicitud que ha hecho de la misma. Es decir, el daemon sshd se está ejecutando. Eso se inicia lo suficiente para sus propósitos (supongo, sustituto de cualquier daemon que realmente necesite).

Entonces, enviaría la señal de encendido, y volvería a verificar cada 15-30 segundos para ver si podía conectarme. Si no me puedo conectar dentro de un tiempo razonable para esa máquina (2 minutos o 5 minutos o lo que sea), enviaré una alerta al equipo de soporte de TI. Bueno, me lo enviaría a mí mismo primero, y solo una vez que haya investigado unas cuantas fallas y haya encontrado que todas son legítimas, comenzaría a enviarlas directamente a TI.

DHCP es una pregunta diferente. Tendría que comenzar a aprender acerca de la transmisión, o tener un daemon en esa máquina "llamar a casa" durante el arranque para registrar su dirección IP actual. Y tendría que "llamar a casa" cada vez que una renovación de DHCP cambiara su dirección IP. Esto es decididamente más enrevesado. Intente evitar DHCP en tales máquinas de servidor si es posible.

+0

¿Por qué el DHCP cambiará la dirección IP? DHCP simplemente significa que la computadora le pide a la red una dirección; esto no significa que la dirección cambie. Lo que corrige la dirección es el enrutador o lo que sea que responda a la consulta. Todo lo que uno tiene que hacer es decirle al enrutador que proporcione una IP fija a la máquina. –

+0

DHCP simplemente * puede * cambiar las direcciones IP. Nada lo dice * debe *. Uno debe lidiar con eso de alguna manera, que es configurar el servidor DHCP especialmente o lidiar con el cambio de IP. – Tanktalus

+0

En general, no es una buena idea usar la dirección IP directamente. –

7

Creo que comprobar si sshd suena como un buen enfoque.

En cuanto al problema de DHCP: si la otra computadora está en la misma subred, puede buscarla mediante la dirección MAC usando Net::ARP.

3

¿Qué le parece agregar una secuencia de comandos a la máquina remota que se ejecuta en el inicio para que le diga cuándo está lista.

9

En la máquina de reinicio puede instalar una secuencia de comandos en su crontab con la aserción especial @reboot (consulte man 5 crontab). Esa secuencia de comandos podría enviar una notificación de algún tipo a la otra máquina, notificándole que ahora está activa.

+0

Me gusta esta idea del sistema que llama a casa.Haga que sea lo último en la secuencia de inicio (o al menos después de los servicios que le interesan) y sabrá que el sistema puede responder a sus solicitudes posteriores. – tvanfosson

Cuestiones relacionadas