perl - know - last shutdown linux
¿Cómo sé si un sistema se ha encendido? (4)
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?
Mi lenguaje de programación es Perl y el host de destino es RHEL5.
¿Hay alguna interrupción del kernel o información de arranque 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 tiene alguna sugerencia para hacer la tarea más fácil, avíseles :)
Gracias imkin
¿Qué le parece agregar una secuencia de comandos a la máquina remota que se ejecuta al inicio para que le indique cuándo está lista?
Bueno, yo diría que el sistema se inicia cuando puede realizar la solicitud que ha hecho de él. 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 verificaría cada 15-30 segundos para ver si podía conectarme. Si no puedo conectarme 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.
Creo que buscar sshd suena como un buen enfoque.
En cuanto al problema de DHCP: si la otra computadora está en la misma subred, puede buscarla mediante una dirección MAC usando Net :: ARP .
En la máquina de reinicio puede instalar un script en su crontab con la aserción @reboot
especial (ver 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.