시스템이 갑자기 종료되는 경우. 그러면 언제 문이 닫혔는지 알 수 있을까요? 갑자기 정전 또는 sysrq 매직 키로 인해 발생함을 의미합니다. 몇 초마다 무언가를 기록하면 답변을 얻을 수 있지만 그렇지 않은 경우에는 어떤 방법이 있습니까?
맞춤형 콘솔 기반 시스템을 사용하고 있습니다. 커널은 5.3입니다.
답변1
시스템이 다시 시작된 시기는 "가동 시간", "마지막 재부팅" 등 다양한 방법으로 알 수 있습니다. 시스템이 언제 종료되었는지 아는 것은 좀 더 번거롭습니다. rsyslogd 실행을 통해 정기적인 시스템 로깅이 있다고 가정하면 /etc/rsyslogd.conf에 다음을 추가하여 immark 모듈을 "몇 초마다 로깅" 루틴으로 사용할 수 있습니다.
$ModLoad immark
$MarkMessagePeriod <your time granularity here, in seconds>
$ActionWriteAllMarkMessages on
귀찮게 하지 말고 메시지 파일에 있는 두 가지 중 하나를 살펴볼 수도 있습니다. 시스템 부팅 시 파일이 회전되는 경우 'ls -l'을 사용하여 파일의 이전 버전에 있는 날짜를 보면 시스템이 파일 쓰기를 중단한 시점을 추측할 수 있습니다. 시스템 로그를 교체하지 않는 경우 다시 시작을 나타내는 줄 바로 앞 줄의 타임스탬프를 확인하여 동일한 정확도를 얻을 수 있습니다. 다시 시작하는 모습은 다음과 같습니다.
2020-03-29T03:20:01.529437-04:00 [hostname] rsyslogd: [origin software="rsyslogd" swVersion="8.24.0-41.el7_7.2" x-pid="1615" x-info="h
ttp://www.rsyslog.com"] rsyslogd was HUPed
종료가 예상치 못한 것이 아니었다면 시스템 로거가 종료되기 전에 로그에 메시지를 기록하므로 더 쉬워집니다.
시스템 로깅을 끄면 당연히 이 모든 것이 문제가 됩니다. 여전히 시스템 로그에 내용을 기록하고 있다면 거기에 있는 일부 파일의 통계를 파악하고 수정된 시간을 확인하여 시스템이 사라진 시기를 대략적으로 파악할 수 있습니다.
root# stat /var/log/messages-01.gz
File: '/var/log/messages-01.gz'
Size: 185529 Blocks: 368 IO Block: 4096 regular file
Device: fd06h/64774d Inode: 12689803 Links: 1
Access: (0640/-rw-r-----) Uid: ( 0/ root) Gid: (658178/ mssgro)
Access: 2020-04-08 10:27:47.691311523 -0400
Modify: 2020-04-05 03:01:34.000000000 -0400 <=== that's what you're after ==
Change: 2020-04-07 18:16:40.252668164 -0400
Birth: -
선택한 파일 중에서 최신 파일을 선택하면 시스템이 중지된 시점을 꽤 정확하게 추정할 수 있습니다.
몇 가지 아이디어가 도움이 되기를 바랍니다.