Bagaimana Ubuntu melacak flag “Diperlukan System Restart” di motd?

78

Saya memiliki beberapa server Ubuntu (8,10, 9,10) yang diatur untuk secara otomatis menginstal pembaruan keamanan. Beberapa kali pembaruan ini memerlukan restart sistem, dan string ini ditampilkan di motd:

*** System restart required ***

Untuk mendapatkan pemberitahuan tentang ini, saya berencana untuk menulis tes Nagios untuk memonitor jika server membutuhkan reboot. Jadi, pertanyaan saya:

Apakah ada cara yang lebih baik daripada parsing /etc/motduntuk mencari tahu apakah reboot diperlukan?

Anders Lindahl
sumber

Jawaban:

95

Periksa keberadaan /var/run/reboot-required.

Dan Carley
sumber
17
Catatan: untuk sistem debian, /var/run/reboot-requiredtidak dapat dibuat kecuali update-notifier-commonpaket diinstal.
Peter V. Mørch
7
Catatan yang update-notifier-commontelah dihapus di Debian Jessie. unattended-upgradessekarang termasuk skrip sederhana /etc/kernel/postinst.d/unattended-upgradesyang touchmerupakan file. reboot-notifieradalah paket kecil lain yang kompatibel dengan format update-notifier-common.
ypid
Anda mungkin juga ingin memeriksa proses yang sedang berjalan untuk melihat apakah reboot telah dimulai. Misalnya, peningkatan tanpa pengawasan memiliki opsi untuk menentukan waktu untuk reboot; hingga saat ini, metode di atas akan terus menunjukkan bahwa diperlukan reboot, walaupun sudah dimulai.
DylanYoung
37

Script yang menghasilkan bagian reboot yang diperlukan dari motd adalah / usr / lib / update-notifier / update-motd-reboot-required yang berisi:

#!/bin/sh -e
#
# helper for update-motd

if [ -f /var/run/reboot-required ]; then
        cat /var/run/reboot-required
fi

Pemeriksaan nagios Anda dapat memeriksa keberadaan / var / run / reboot-diperlukan.

Richard Holloway
sumber
2
+1 untuk menunjukkan file ini berada di mana
Wayne
script shell itu tidak menghasilkan apa-apa. Ini menampilkan konten jika ada
Scott
27

Selain itu file '/var/run/reboot-required.pkgs' berisi daftar paket yang meminta reboot. Sebagai contoh:

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

Di Ubuntu Lucid (10.4).

Daniel
sumber
Freaking terima kasih oh my god aku sangat merindukan itu!
Lapshin Dmitry
8

Paket Debian dan Ubuntu dapat memicu pembuatan /var/run/reboot-required*di postinstfile mereka dengan mengeksekusi skrip pembantu/usr/share/update-notifier/notify-reboot-required

Jadi cara "resmi" untuk memproses reboot ditangani oleh pengelola paket. Saya telah melakukannya sebelumnya dalam sebuah skrip dengan membandingkan waktu boot terhadap mtimes di / boot.

chrishiestand
sumber
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
Damian
sumber