Làm thế nào để Ubuntu theo dõi hệ thống khởi động lại yêu cầu cờ của cờ vua trong motd?


77

Tôi có một vài máy chủ Ubuntu (8.10, 9.10) được thiết lập để tự động cài đặt các bản cập nhật bảo mật. Đôi khi các bản cập nhật này yêu cầu khởi động lại hệ thống và chuỗi này được hiển thị trong motd:

*** System restart required ***

Để nhận được thông báo về những điều này, tôi dự định viết một bài kiểm tra Nagios để theo dõi nếu máy chủ cần khởi động lại. Vì vậy, câu hỏi của tôi:

Có cách nào tốt hơn là phân tích cú pháp /etc/motdđể tìm hiểu xem có cần khởi động lại không?

Câu trả lời:


94

Kiểm tra sự hiện diện của /var/run/reboot-required.


17
Lưu ý: đối với các hệ thống debian, /var/run/reboot-requiredkhông được tạo trừ khi update-notifier-commongói được cài đặt.
Peter V. Mørch

7
Lưu ý rằng update-notifier-commonđã bị xóa trong Debian Jessie. unattended-upgradesbây giờ bao gồm một tập lệnh đơn giản /etc/kernel/postinst.d/unattended-upgradestouches tập tin. reboot-notifierlà một gói nhỏ khác tương thích với định dạng của update-notifier-common.
ypid

Bạn cũng có thể muốn kiểm tra các quy trình đang chạy của mình để xem liệu khởi động lại đã được bắt đầu chưa. Chẳng hạn, các bản nâng cấp không giám sát có tùy chọn chỉ định thời gian khởi động lại; cho đến thời điểm này, phương thức trên sẽ tiếp tục chỉ ra rằng cần phải khởi động lại, ngay cả khi phương thức đã được bắt đầu.
DylanYoung

37

Kịch bản tạo phần khởi động lại yêu cầu của motd là / usr / lib / update-notifier / update-motd-restart-required có chứa:

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

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

Kiểm tra nagios của bạn có thể kiểm tra sự tồn tại của / var / run / restart-required.


2
+1 để hiển thị tệp này nằm ở đâu
Wayne

kịch bản shell đó không tạo ra bất cứ điều gì. Nó hiển thị nội dung nếu nó tồn tại
Scott

26

Ngoài ra, tệp '/var/run/reboot-required.pkgs' liệt kê các gói được yêu cầu khởi động lại. Ví dụ:

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

Trên Ubuntu Lucid (10,4).


Cảm ơn bạn, trời ơi, tôi nhớ nó rất nhiều!
Lapshin Dmitry

8

Các gói Debian và Ubuntu có thể kích hoạt việc tạo /var/run/reboot-required*trong postinsttệp của chúng bằng cách thực thi tập lệnh của trình trợ giúp/usr/share/update-notifier/notify-reboot-required

Do đó, cách "chính thức" để xử lý khởi động lại được xử lý bởi người duy trì gói. Tôi đã thực hiện nó trước đây trong một kịch bản bằng cách so sánh thời gian khởi động với mtimes trong / boot.


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
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.