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


77

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

*** System restart required ***

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

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

Answers:


94

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


17
注意:对于debian系统,/var/run/reboot-required除非update-notifier-common安装了软件包,否则不会创建。
Peter V.Mørch2012年

7
请注意,update-notifier-common已在Debian Jessie中将其删除。unattended-upgrades现在包括一个简单的脚本/etc/kernel/postinst.d/unattended-upgrades哪个touchES上的文件。reboot-notifier是另一个与格式兼容的小包装update-notifier-common
ypid

您可能还需要检查正在运行的进程,以查看是否已启动重新引导。例如,无人值守升级可以指定重新启动的时间。直到此时,以上方法将继续指示需要重新启动,即使已经启动了。
DylanYoung

37

生成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。


2
+1以显示此文件位于哪个文件中
Wayne

该shell脚本不会生成任何东西。如果内容存在,它将显示内容
Scott

26

此外,文件“ /var/run/reboot-required.pkgs”列出了请求重新引导的软件包。例如:

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

在Ubuntu Lucid(10.4)上。


真是太感谢你了,哦,天哪,我好想念!
Lapshin Dmitry'7

8

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

因此,程序重新维护的“官方”方式由程序包维护人员处理。我以前在脚本中通过比较/ boot中的mtimes引导时间来进行此操作。


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
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.