题 Ubuntu如何跟踪motd中的“需要系统重启”标志?


我有一些Ubuntu服务器(8.10,9.10)设置为自动安装安全更新。有时这些更新需要重新启动系统,并且此字符串显示在 motd

*** System restart required ***

为了获得有关这些的通知,我计划编写一个Nagios测试来监视服务器是否需要重新启动。那么,我的问题是:

有没有比解析更好的方法 /etc/motd 找出是否需要重启?


74
2017-12-10 09:33






答案:


检查是否存在 /var/run/reboot-required


92
2017-12-10 09:59



究竟 我在找什么,谢谢! - Anders Lindahl
注意:对于debian系统, /var/run/reboot-required 不会被创建除非 update-notifier-common 包已安装。 - Peter V. Mørch
注意 update-notifier-common 已被Debian Jessie删除。 unattended-upgrades 现在包括一个简单的脚本 /etc/kernel/postinst.d/unattended-upgrades 哪一个 touches文件。 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。


37
2017-12-10 10:08



+1用于显示其所在的文件 - Wayne
那个shell脚本没有生成任何东西。它显示内容(如果存在) - Scott


此外,文件'/var/run/reboot-required.pkgs'列出了请求重启的软件包。例如:

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

在Ubuntu Lucid(10.4)。


25
2018-01-19 04:44



非常感谢谢谢哦,天哪,我错过了这么多! - Lapshin Dmitry


Debian和Ubuntu包可以触发创建 /var/run/reboot-required* 在他们的 postinst 通过执行帮助程序脚本来执行文件 /usr/share/update-notifier/notify-reboot-required

因此,处理重新启动的“官方”方式由包维护者处理。我之前在脚本中通过比较/ boot中的mtimes启动时间来完成它。


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