Wie verfolgt Ubuntu das Flag "Systemneustart erforderlich" in motd?

77

Ich habe einige Ubuntu-Server (8.10, 9.10), die so eingestellt sind, dass sie automatisch Sicherheitsupdates installieren. In einigen Fällen ist für diese Updates ein Neustart des Systems erforderlich. Diese Zeichenfolge wird in motdfolgenden Abschnitten angezeigt :

*** System restart required ***

Um darüber informiert zu werden, plane ich, einen Nagios-Test zu schreiben, um zu überwachen, ob der Server neu gestartet werden muss. Also meine Frage:

Gibt es eine bessere Möglichkeit als das Parsen /etc/motd, um herauszufinden, ob ein Neustart erforderlich ist?

Anders Lindahl
quelle

Antworten:

94

Überprüfen Sie das Vorhandensein von /var/run/reboot-required.

Dan Carley
quelle
17
Hinweis: Wird für Debian-Systeme /var/run/reboot-requirederst erstellt, wenn das update-notifier-commonPaket installiert ist.
Peter V. Mørch
7
Beachten Sie, dass update-notifier-commondies in Debian Jessie entfernt wurde. unattended-upgradesEnthält jetzt ein einfaches Skript, /etc/kernel/postinst.d/unattended-upgradesdas touchdie Datei enthält. reboot-notifierist ein weiteres kleines Paket, das mit dem Format von kompatibel ist update-notifier-common.
ypid
Möglicherweise möchten Sie auch Ihre laufenden Prozesse überprüfen, um festzustellen, ob bereits ein Neustart eingeleitet wurde. Beispielsweise können Sie bei unbeaufsichtigten Upgrades einen Zeitpunkt für den Neustart angeben. Bis zu diesem Zeitpunkt zeigt die obige Methode weiterhin an, dass ein Neustart erforderlich ist, obwohl bereits ein Neustart eingeleitet wurde.
DylanYoung
37

Das Skript, das den für den Neustart erforderlichen Teil von motd generiert, lautet / usr / lib / update-notifier / update-motd-reboot-required und enthält Folgendes:

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

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

Ihr Nagios-Check könnte prüfen, ob / var / run / reboot-required vorhanden ist.

Richard Holloway
quelle
2
+1 für die Anzeige, in welcher Datei sich diese befindet
Wayne
Dieses Shell-Skript generiert nichts. Es zeigt den Inhalt an, falls vorhanden
Scott
26

Zusätzlich listet die Datei '/var/run/reboot-required.pkgs' die Pakete auf, die den Neustart angefordert haben. Zum Beispiel:

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

Auf Ubuntu Lucid (10.4).

Daniel
quelle
Freaking danke oh mein Gott, ich habe das so sehr vermisst!
Lapshin Dmitry
8

Debian- und Ubuntu-Pakete können die Erstellung /var/run/reboot-required*in ihrer postinstDatei durch Ausführen des Hilfsskripts auslösen/usr/share/update-notifier/notify-reboot-required

Somit wird die "offizielle" Methode zum Verarbeiten von Neustarts vom Paketbetreuer verwaltet. Ich habe es zuvor in einem Skript getan, indem ich die gebootete Zeit mit mtimes in / boot verglichen habe.

chrishiestand
quelle
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
quelle