Як Ubuntu відслідковує прапор "Необхідний перезапуск системи" в motd?


77

У мене є кілька серверів Ubuntu (8.10, 9.10), які встановлені для автоматичної установки оновлень безпеки. Іноді ці оновлення потребують перезавантаження системи, і ця рядок відображається у motd:

*** System restart required ***

Щоб отримати повідомлення про них, я планую написати тест Nagios для моніторингу, чи потрібен серверу перезавантаження. Отже, моє запитання:

Чи є кращий спосіб, ніж розбір, /etc/motdщоб з’ясувати, чи потрібна перезавантаження?

Відповіді:


94

Перевірте наявність /var/run/reboot-required.


17
Примітка: для систем Debian /var/run/reboot-requiredне створюється, якщо update-notifier-commonпакет не встановлений.
Петро В. Морч

7
Зауважте, що update-notifier-commonбуло видалено в Debian Jessie. unattended-upgradesтепер включає простий скрипт, /etc/kernel/postinst.d/unattended-upgradesякий touchє файлом. reboot-notifierце ще один невеликий пакет, сумісний з форматом update-notifier-common.
ypid

Ви також можете перевірити запущені процеси, щоб побачити, чи перезавантаження вже ініційовано. Наприклад, оновлення без нагляду мають можливість вказати час для перезавантаження; до цього часу вищевказаний метод буде продовжувати вказувати на необхідність перезавантаження, навіть якщо такий вже був ініційований.
DylanYoung

37

Сценарій, який генерує необхідну частину motd для перезавантаження, є / usr / lib / update-notifier / update-motd-reboot, який містить:

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

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

Ваша перевірка nagios може перевірити наявність / var / run / reboot-Required.


2
+1 для показу, в якому файлі знаходиться цей файл
Уейн

скрипт оболонки нічого не генерує. Він відображає вміст, якщо він існує
Скотт

26

Крім того, у файлі '/var/run/reboot-required.pkgs' перелічені пакети, які вимагали перезавантаження. Наприклад:

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

На Ubuntu Lucid (10.4).


Боязне спасибі о боже, я так пропустив!
Лапшин Дмитро

8

Пакети Debian і Ubuntu можуть запустити створення /var/run/reboot-required*у своєму postinstфайлі шляхом виконання допоміжного сценарію/usr/share/update-notifier/notify-reboot-required

Таким чином, "офіційним" способом обробки перезавантажень керує обслуговуючий пакет. Я робив це раніше в сценарії, порівнюючи час, завантажений проти mtimes в / 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
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.