Frage Wie verfolgt Ubuntu das Flag "System neustart required" in motd?


Ich habe ein paar Ubuntu-Server (8.10, 9.10), die automatisch Sicherheitsupdates installieren. Manchmal erfordern diese Aktualisierungen einen Neustart des Systems und diese Zeichenfolge wird in angezeigt motd:

*** System restart required ***

Um einen Hinweis darauf zu erhalten, möchte ich einen Nagios-Test schreiben, um zu überwachen, ob der Server einen Neustart benötigt. Also, meine Frage:

Gibt es einen besseren Weg als das Parsen? /etc/motd um herauszufinden, ob ein Neustart erforderlich ist?


74
2017-12-10 09:33


Ursprung




Antworten:


Überprüfen Sie auf Anwesenheit von /var/run/reboot-required.


92
2017-12-10 09:59



Genau Was ich gesucht habe, danke! - Anders Lindahl
Hinweis: Für Debian-Systeme, /var/run/reboot-required wird nicht erstellt, es sei denn die update-notifier-common Paket ist installiert. - Peter V. Mørch
Beachten Sie, dass update-notifier-common wurde in Debian Jessie entfernt. unattended-upgrades enthält jetzt ein einfaches Skript /etc/kernel/postinst.d/unattended-upgrades welche touchEs ist die Datei. reboot-notifier ist 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 initiiert wurde. Unattended-Upgrades haben beispielsweise die Möglichkeit, eine Zeit für den Neustart festzulegen. Bis zu diesem Zeitpunkt zeigt die obige Methode weiterhin an, dass ein Neustart erforderlich ist, obwohl bereits ein Neustart durchgeführt wurde. - DylanYoung


Das Skript, das den Neustart erforderlich macht, ist ein Teil von motd / usr / lib / update-notifier / update-motd-reboot-required, das Folgendes enthält:

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

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

Ihre Nagios-Prüfung könnte prüfen, ob / var / run / reboot-required vorhanden ist.


37
2017-12-10 10:08



+1, um zu zeigen, in welcher Datei sich das befindet - Wayne
Dieses Shell-Skript erzeugt nichts. Es zeigt den Inhalt an, wenn es existiert - Scott


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).


25
2018-01-19 04:44



Freaking Danke, oh mein Gott, das habe ich so sehr vermisst! - Lapshin Dmitry


Debian- und Ubuntu-Pakete können die Erstellung von starten /var/run/reboot-required* in ihren postinst Datei durch Ausführen des Hilfsskriptes /usr/share/update-notifier/notify-reboot-required

Somit wird die "offizielle" Methode, Neustarts zu verarbeiten, vom Paketbetreuer übernommen. Ich habe es vorher in einem Skript getan, indem ich die Zeit verglichen habe, die gegen mttimes in / boot gestartet wurde.


7
2018-02-22 22:49





#!/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

4
2018-05-11 12:02