Вопрос: Как Ubuntu отслеживает флаг «Требуется перезагрузка системы» в motd?


У меня есть несколько серверов Ubuntu (8.10, 9.10), которые настроены на автоматическую установку обновлений безопасности. В некоторых случаях для этих обновлений требуется перезапуск системы, и эта строка показана в motd:

*** System restart required ***

Чтобы получить уведомление об этом, я планирую написать тест Nagios, чтобы отслеживать, требует ли сервер перезагрузки. Итак, мой вопрос:

Есть ли лучший способ, чем синтаксический анализ /etc/motd чтобы узнать, нужна ли перезагрузка?


74
2017-12-10 09:33


Источник




Ответы:


Проверьте наличие /var/run/reboot-required,


91
2017-12-10 09:59



В точку что я искал, спасибо! - Anders Lindahl
Примечание: для дебианских систем, /var/run/reboot-required не создается, если только update-notifier-common пакет установлен. - Peter V. Mørch
Обратите внимание, что update-notifier-common был удален в Debian Jessie. unattended-upgrades теперь включает простой скрипт /etc/kernel/postinst.d/unattended-upgrades который touchфайл. reboot-notifier это еще один небольшой пакет, который совместим с форматом update-notifier-common, - ypid
Вы также можете проверить свои запущенные процессы, чтобы убедиться, что перезагрузка уже запущена. Например, при автоматическом обновлении есть возможность указать время перезагрузки; до этого времени указанный выше метод будет продолжать указывать, что требуется перезагрузка, даже если она уже была инициирована. - DylanYoung


Сценарий, который генерирует перезагруженную часть motd, - это / usr / lib / update-notifier / update-motd-reboot-required, который содержит:

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


36
2017-12-10 10:08



+1 для отображения файла, который находится в - Wayne
этот сценарий оболочки ничего не генерирует. Он отображает содержимое, если оно существует - Scott


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

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

На Ubuntu Lucid (10.4).


24
2018-01-19 04:44



Размахивая спасибо, боже, что я так много пропустил! - Lapshin Dmitry


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

Таким образом, «официальный» способ обработки перезагрузки обрабатывается сопровождающим пакета. Я делал это ранее в скрипте, сравнивая время загрузки с mtimes in / boot.


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