¿Cómo realiza Ubuntu un seguimiento del indicador "Se requiere reiniciar el sistema" en motd?

78

Tengo algunos servidores Ubuntu (8.10, 9.10) que están configurados para instalar automáticamente actualizaciones de seguridad. Algunas veces estas actualizaciones requieren un reinicio del sistema, y ​​esta cadena se muestra en motd:

*** System restart required ***

Para recibir un aviso sobre estos, planeo escribir una prueba de Nagios para monitorear si el servidor necesita reiniciar. Entonces, mi pregunta:

¿Hay una mejor manera que analizar /etc/motdpara saber si es necesario reiniciar?

Anders Lindahl
fuente

Respuestas:

95

Verifique la presencia de /var/run/reboot-required.

Dan Carley
fuente
17
Nota: para sistemas debian, /var/run/reboot-requiredno se crea a menos que el update-notifier-commonpaquete esté instalado.
Peter V. Mørch
77
Tenga en cuenta que update-notifier-commonse ha eliminado en Debian Jessie. unattended-upgradesahora incluye un script simple /etc/kernel/postinst.d/unattended-upgradesque touches el archivo. reboot-notifieres otro paquete pequeño que es compatible con el formato de update-notifier-common.
ypid
También es posible que desee verificar sus procesos en ejecución para ver si ya se ha iniciado un reinicio. Por ejemplo, las actualizaciones desatendidas tienen la opción de especificar un momento para reiniciar; hasta este momento, el método anterior continuará indicando que se requiere un reinicio, aunque ya se haya iniciado.
DylanYoung
37

El script que genera la parte de reinicio requerida de motd es / usr / lib / update-notifier / update-motd-reboot-required que contiene:

#!/bin/sh -e
#
# helper for update-motd

if [ -f /var/run/reboot-required ]; then
        cat /var/run/reboot-required
fi

Su verificación de nagios podría verificar la existencia de / var / run / reboot-required.

Richard Holloway
fuente
2
+1 para mostrar en qué archivo se encuentra este
Wayne
ese script de shell no genera nada. Muestra el contenido si existe
Scott
27

Además, el archivo '/var/run/reboot-required.pkgs' enumera los paquetes que solicitaron el reinicio. Por ejemplo:

$ cat /var/run/reboot-required.pkgs 
linux-image-2.6.32-28-generic
dbus
$

En Ubuntu Lucid (10.4).

Daniel
fuente
Maldita sea, gracias, Dios mío, ¡me lo perdí tanto!
Lapshin Dmitry
8

Los paquetes Debian y Ubuntu pueden desencadenar la creación de /var/run/reboot-required*su postinstarchivo ejecutando el script auxiliar/usr/share/update-notifier/notify-reboot-required

Por lo tanto, la forma "oficial" de procesar reinicios es manejada por el responsable del paquete. Lo he estado haciendo anteriormente en un script al comparar el tiempo de arranque con mtimes en / boot.

Chrishiestand
fuente
4
#!/bin/bash
if [ ! -f /var/run/reboot-required ]; then
        # no reboot required (0=OK)
        echo "OK: no reboot required"
        exit 0
else
        # reboot required (1=WARN)
        echo "WARNING: `cat /var/run/reboot-required`"
        exit 1
fi
Damian
fuente