У меня есть несколько серверов 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