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

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

#1 楼

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

评论


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

– Peter V.Mørch
2012年1月27日7:50



注意,在Debian Jessie中已删除了update-notifier-common。无人值守升级现在包括一个简单的脚本/etc/kernel/postinst.d/unattended-upgrades,该脚本可以触及文件。 reboot-notifier是另一个小软件包,与update-notifier-common的格式兼容。

–ypid
16年1月21日在8:45



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

– DylanYoung
16年6月28日在18:42

#2 楼

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

评论


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

–韦恩
09-12-10在11:06

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

–斯科特
18年7月5日在15:09

#3 楼

另外,文件“ /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
17年7月2日在21:25

#4 楼

Debian和Ubuntu软件包可以通过执行帮助脚本/var/run/reboot-required*来触发其postinst文件中的/usr/share/update-notifier/notify-reboot-required的创建,因此,由软件包维护者处理“重启”的“官方”方法。我以前在脚本中通过比较/ boot中的mtimes引导时间来进行此操作。

#5 楼

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