Назад | Перейти на главную страницу

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

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

*** System restart required ***

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

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

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

Скрипт, который генерирует часть 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.

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

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

В Ubuntu Lucid (10.4).

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

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

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