시스템이 종료된 원인을 로그에서 어떻게 알 수 있나요?

시스템이 종료된 원인을 로그에서 어떻게 알 수 있나요?

예를 들어 다음에서 이것을 보았습니다 /var/log/messages.

Mar 01 23:12:34 hostname shutdown: shutting down for system halt

종료 원인이 무엇인지 알아낼 수 있는 방법이 있습니까? 예를 들어 콘솔에서 실행했습니까, 아니면 누군가 전원 버튼을 눌렀습니까?

답변1

다음 명령을 시도해 보십시오:

마지막 다시 시작 항목 목록을 표시합니다. last reboot | less

마지막으로 닫힌 항목 목록을 표시합니다. last -x | less

또는 더 정확하게는: last -x | grep shutdown | less

하지만 누가 그랬는지는 알 수 없습니다. 누가 그런 짓을 했는지 알고 싶다면 코드를 추가해야 합니다. 그러면 다음에 알 수 있습니다.

이 자료를 온라인에서 찾았습니다. 다음 사항이 도움이 될 수 있습니다.

내 시스템을 중지한 사람이나 원인을 찾는 방법

답변2

총 길이 DR

이 두 명령을 사용하고 자세한 내용을 읽어보세요.
last -x | head | tac

grep -iv ': starting\|kernel: .*: Power Button\|watching system buttons\|Stopped Cleaning Up\|Started Crash recovery kernel' \
  /var/log/messages /var/log/syslog /var/log/apcupsd* \
  | grep -iw 'recover[a-z]*\|power[a-z]*\|shut[a-z ]*down\|rsyslogd\|ups'

1) 마지막 -x 명령의 출력에 관하여

이 명령*을 실행하고 출력을 다음 예와 비교하십시오.

last -x | head | tac

단계적 종료 예시

정상적인 종료 및 시작은 다음과 같습니다(시스템 시작 이벤트 뒤에 종료 이벤트가 있다는 점에 유의하세요).

runlevel (to lvl 0)   2.6.32- Sat Mar 17 08:48 - 08:51  (00:02) 
shutdown system down  ... <-- first the system shuts down   
reboot   system boot  ... <-- afterwards the system boots
runlevel (to lvl 3)       

어떤 경우에는 다음을 볼 수 있습니다(종료에 관한 줄은 없지만 시스템은 실행 레벨 0, 즉 "일시 중지 상태"에 있습니다).

runlevel (to lvl 0)   ... <-- first the system shuts down (init level 0)
reboot   system boot  ... <-- afterwards the system boots
runlevel (to lvl 2)   2.6.24-... Fri Aug 10 15:58 - 15:32 (2+23:34)   

예기치 않은 종료 예

정전으로 인한 예기치 않은 종료는 다음과 같습니다(시스템 시작 이벤트는 있지만 이전 시스템 종료 이벤트는 없음).

runlevel (to lvl 3)   ... <-- the system was running since this momemnt
reboot   system boot  ... <-- then we've a boot WITHOUT a prior shutdown
runlevel (to lvl 3)   3.10.0-693.21.1. Sun Jun 17 15:40 - 09:51  (18:11)    

2) /var/log/의 로그 정보

가장 흥미로운 로그 메시지를 필터링하는 bash 명령은 다음과 같습니다.

grep -iva ': starting\|kernel: .*: Power Button\|watching system buttons\|Stopped Cleaning Up\|Started Crash recovery kernel' \
  /var/log/messages /var/log/syslog /var/log/apcupsd* \
  | grep -iw 'recover[a-z]*\|power[a-z]*\|shut[a-z ]*down\|rsyslogd\|ups'

예상치 못한 정전이나 하드웨어 오류가 발생하면 파일 시스템이 올바르게 마운트 해제되지 않으므로 다음 부팅 시 다음과 같은 로그를 받을 수 있습니다.

EXT4-fs ... INFO: recovery required ... 
Starting XFS recovery filesystem ...
systemd-fsck: ... recovering journal
systemd-journald: File /var/log/journal/.../system.journal corrupted or uncleanly shut down, renaming and replacing.

사용자가 전원 버튼을 눌러 시스템이 종료되면 다음과 같은 로그가 표시됩니다.

systemd-logind: Power key pressed.
systemd-logind: Powering Off...
systemd-logind: System is powering down.

시스템이 정상적으로 종료된 경우에만 다음과 같은 로그를 받게 됩니다.

rsyslogd: ... exiting on signal 15

과열로 인해 시스템이 종료되면 다음과 같은 로그가 수신됩니다.

critical temperature reached...,shutting down

UPS가 있고 데몬을 실행하여 전원 및 종료를 모니터링하는 경우 해당 로그를 분명히 확인해야 합니다(NUT 로그는 /var/log/messages에 기록되지만 apcupsd 로그는 /var/log/apcupsd*에 기록됩니다)


노트

last*: 다음은 매뉴얼 페이지의 설명입니다.

last [...] prints information about connect times of users. 
Records are printed from most recent to least recent.  
[...]
The special users reboot and shutdown log in when the system reboots
or (surprise) shuts down. 

우리는 head최신 10개의 이벤트를 유지하는 데 사용하고, tac가장 최근의 이벤트부터 가장 최근의 이벤트까지 진행하면서 마지막으로 인쇄된 이벤트와 혼동되지 않도록 순서를 바꾸는 데 사용합니다.

답변3

루트 권한이 있는 프로그램만이 시스템을 올바르게 종료할 수 있습니다. 따라서 시스템이 일반적인 방법으로 종료되면 루트 권한이 있는 사용자나 acpi 스크립트가 종료됩니다. 두 경우 모두 로그를 확인하여 확인할 수 있습니다. ACPI 종료는 전원 버튼 누르기, 과열 또는 배터리 부족(노트북)으로 인해 발생할 수 있습니다. 세 번째 이유는 잊어버렸는데, 정전이 되면 UPS 소프트웨어는 어쨌든 경보를 울립니다.

최근에 시스템이 반복적으로 부팅되고 비정상적으로 전원이 꺼지는 현상이 발생했는데 시스템이 과열되고 마더보드가 조기에 전원이 꺼지도록 구성되어 있는 것을 발견했습니다. 시스템에서는 로그를 저장할 기회가 없었지만 다행히 시스템 온도를 모니터링한 결과 전원이 꺼지기 전부터 온도가 올라가기 시작한 것으로 나타났습니다.

따라서 정상적인 종료라면 기록될 것이고, 침입이라면... 행운을 빕니다. 콜드 종료라면 알 수 있는 가장 좋은 기회는 환경을 제어하고 모니터링하는 것입니다.

답변4

last시스템 종료 항목 표시, 실행 레벨 변경 및 필터 합계를 사용하여 shutdown단순화합니다 reboot.

last -x shutdown reboot

관련 정보