Ubuntuはmotdの「システムの再起動が必要です」フラグをどのように追跡しますか?


78

セキュリティ更新プログラムを自動的にインストールするように設定されているいくつかのUbuntuサーバー(8.10、9.10)があります。これらの更新にはシステムの再起動が必要な場合があり、この文字列は次のように表示されmotdます。

*** System restart required ***

これらについて通知するために、サーバーの再起動が必要かどうかを監視するNagiosテストを作成する予定です。だから、私の質問:

/etc/motd再起動が必要かどうかを調べるために解析するよりも良い方法はありますか?

回答:


95

の存在を確認し/var/run/reboot-requiredます。


17
注:debianシステムの/var/run/reboot-required場合、update-notifier-commonパッケージがインストールされていないと作成されません。
ピーターV.モルヒ

7
update-notifier-commonDebian Jessieでは削除されていることに注意してください。ファイルを編集unattended-upgradesする簡単なスクリプト/etc/kernel/postinst.d/unattended-upgradesが含まれるようになりましたtouchreboot-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
ウェイン

そのシェルスクリプトは何も生成しません。コンテンツが存在する場合は表示します
Scott

27

さらに、ファイル「/var/run/reboot-required.pkgs」には、リブートを要求したパッケージがリストされています。例えば:

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

Ubuntu Lucid(10.4)で。


おかしくなりました、ありがとうございます。
ラップシンドミトリー

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
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.