Ubuntu는 motd에서 "시스템 재시작 필요"플래그를 어떻게 추적합니까?


77

보안 업데이트를 자동으로 설치하도록 설정된 몇 가지 Ubuntu 서버 (8.10, 9.10)가 있습니다. 때때로이 업데이트는 시스템을 다시 시작해야하며이 문자열은 다음과 motd같습니다.

*** System restart required ***

이에 대한 알림을 받으려면 서버를 재부팅해야하는지 모니터링하기 위해 Nagios 테스트를 작성하려고합니다. 그래서 내 질문 :

/etc/motd재부팅이 필요한지 파싱 하는 것보다 더 좋은 방법이 있습니까?

답변:


94

의 존재 여부를 확인하십시오 /var/run/reboot-required.


17
참고 : 데비안 시스템의 /var/run/reboot-required경우 update-notifier-common패키지가 설치되어 있지 않으면 생성되지 않습니다 .
Peter V. Mørch

7
참고 update-notifier-common데비안 제시에서 제거되었습니다. unattended-upgrades이제 파일을 가져 오는 간단한 스크립트 /etc/kernel/postinst.d/unattended-upgrades가 포함 touch됩니다. 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

그 쉘 스크립트는 아무것도 생성하지 않습니다. 존재하는 경우 내용을 표시합니다
Scott

26

또한 '/var/run/reboot-required.pkgs'파일에는 재부팅을 요청한 패키지가 나열됩니다. 예를 들면 다음과 같습니다.

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

우분투 루시드 (10.4).


괴물 아, 고마워, 세상에 너무 그리웠 어!
Lapshin Dmitry

8

데비안 및 우분투 패키지는 도우미 스크립트를 실행하여 파일 /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.