Comment Ubuntu garde-t-elle trace de l'indicateur «Redémarrage du système requis» dans motd?


78

J'ai quelques serveurs Ubuntu (8.10, 9.10) configurés pour installer automatiquement les mises à jour de sécurité. Parfois, ces mises à jour nécessitent un redémarrage du système, et cette chaîne est indiquée dans motd:

*** System restart required ***

Pour obtenir une notification à ce sujet, j’ai l’intention d’écrire un test Nagios pour surveiller si le serveur nécessite un redémarrage. Alors, ma question:

Existe-t-il un meilleur moyen que d'analyser /etc/motdpour savoir si un redémarrage est nécessaire?

Réponses:


95

Vérifiez la présence de /var/run/reboot-required.


17
Remarque: pour les systèmes Debian, /var/run/reboot-requiredne sont créés que si le update-notifier-commonpaquet est installé.
Peter V. Mørch

7
Notez que cela update-notifier-commona été supprimé dans Debian Jessie. unattended-upgradesinclut maintenant un script simple /etc/kernel/postinst.d/unattended-upgradesqui touches le fichier. reboot-notifierest un autre petit paquet compatible avec le format de update-notifier-common.
Ypid

Vous pouvez également vouloir vérifier vos processus en cours d'exécution pour voir si un redémarrage a déjà été initié. Par exemple, les mises à niveau sans assistance ont la possibilité de spécifier une heure de redémarrage; jusqu'à ce moment, la méthode ci-dessus continuera d'indiquer qu'un redémarrage est nécessaire, même s'il en a déjà été initié.
DylanYoung

37

Le script qui génère la partie requise de redémarrage de motd est / usr / lib / update-notifier / update-motd-reboot-required, qui contient:

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

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

Votre vérification nagios pourrait vérifier l’existence de / var / run / reboot-required.


2
+1 pour montrer dans quel fichier il se trouve
Wayne

ce script shell ne génère rien. Il affiche le contenu s'il existe
Scott

27

De plus, le fichier '/var/run/reboot-required.pkgs' répertorie les packages qui ont demandé le redémarrage. Par exemple:

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

Sur Ubuntu Lucid (10.4).


Freaking merci oh mon dieu ça m'a tellement manqué!
Lapshin Dmitry

8

Les paquets Debian et Ubuntu peuvent déclencher la création de /var/run/reboot-required*dans leur postinstfichier en exécutant le script d'assistance/usr/share/update-notifier/notify-reboot-required

Ainsi, la manière "officielle" de traiter les redémarrages est gérée par le mainteneur du paquet. Je le faisais auparavant dans un script en comparant le temps initialisé avec mtimes dans / boot.


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
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.