답변:
루트 권한 프로그램 만 시스템을 정상적으로 종료 할 수 있습니다. 따라서 시스템이 정상적인 방식으로 종료되면 루트 권한을 가진 사용자이거나 acpi 스크립트입니다. 두 경우 모두 로그를 확인하여 찾을 수 있습니다. 전원 버튼 누르기, 과열 또는 배터리 부족 (노트북)으로 인해 ACPI가 종료 될 수 있습니다. 전원 공급 장치에 장애가 발생했을 때 UPS 소프트웨어 인 세 번째 이유를 잊어 버렸습니다.
최근에 시스템이 비정상적으로 전원을 끄기 시작했습니다. 시스템이 과열되었다는 것이 밝혀졌고 mobo는 초기에 전원을 끄도록 구성되었습니다. 시스템은 로그를 저장할 기회가 없었지만 다행히 시스템 온도를 모니터링하면 전원을 끄기 직전에 온도가 상승하기 시작했습니다.
따라서 정상적인 종료 인 경우에는 로그가 기록되고 침입이 발생한 경우 ... 행운을 빕니다. 콜드 종료 인 경우 가장 좋은 기회는 환경을 제어하고 모니터링하는 것입니다.
다음 명령을 시도하십시오 :
마지막 재부트 항목 목록 표시 :
last reboot | less
마지막 종료 항목 목록 표시 :
last -x | less
또는 더 정확하게 :
last -x | grep shutdown | less
그러나 누가 그랬는지 알 수 없습니다. 누가 그랬는지 알고 싶다면 약간의 코드를 추가해야하므로 다음에 알게 될 것입니다.
이 리소스를 온라인에서 찾았습니다. 다음과 같이 유용 할 수 있습니다.
last -x shutdown
확인할 몇 가지 사항이 있습니다.
이 명령 *을 실행하고 출력을 아래 예제와 비교하십시오.
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)
가장 흥미로운 로그 메시지를 필터링하는 bash 명령은 다음과 같습니다.
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'
예기치 않은 전원 끄기 또는 하드웨어 오류가 발생하면 파일 시스템이 올바르게 마운트 해제되지 않으므로 다음 부팅시 다음과 같은 로그가 표시 될 수 있습니다.
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가 있고 전원 및 종료를 모니터링하기 위해 데몬을 실행하는 경우 반드시 해당 로그 (/ var / log / messages의 NUT 로그는 / var / log / apcupsd *의 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
순서를 거꾸로 사용 하여 가장 최근의 이벤트부터 가장 최근의 이벤트까지 마지막으로 인쇄한다는 사실에 혼동하지 않도록합니다.
tac
명령 없이 다시 작성하면 도움이 될 수 있습니다.
탐색 할 수있는 몇 가지 로그 파일 : (우분투 시스템을 찾았지만 대부분의 Linux / Unix 시스템에 존재하기를 바랍니다)
/var/log/debug
/var/log/syslog (will be pretty full and may be harder to browse)
/var/log/user.log
/var/log/kern.log
/var/log/boot
이 로그 파일은 Ubuntu 시스템에 있으므로 파일 이름이 다를 수 있습니다. tail
명령은 친구입니다.
사용하여 단순화 last
에 시스템 종료 항목 및 실행 레벨 변경 및 필터링을 표시 shutdown
하고 reboot
:
last -x shutdown reboot
cat foo | grep bar
대 grep bar foo
방법의 종류, 마지막으로 그 자체를 필터링 할 것으로 보인다.
데비안 7.8에서도 비슷한 요구가 있었고 기본적으로 로그에 명확하고 명확한 메시지가 없다는 것을 알았습니다.
Grep through /var/log
는 머신이 종료 된 시간을 알려주고 적절한 데몬 종료 등을 표시하지만 초기 이유는 아닙니다.
shutdown[25861]: shutting down for system halt
언급 된 다른 솔루션 ( last -x
) 은별로 도움이되지 않았습니다.
독서 /etc/acpi/powerbtn-acpi-support.sh
내용 :
만약 [-x /etc/acpi/powerbtn.sh]; 그때 # acpid 패키지의 이전 구성 스크립트와의 호환성 /etc/acpi/powerbtn.sh elif [-x / etc / acpi / powerbtn.sh.dpkg-bak]; 그때 # acpid 패키지의 이전 구성 스크립트와의 호환성 # 관리자에 의해 변경되었으므로 여전히 주변에 있습니다. /etc/acpi/powerbtn.sh.dpkg-bak 그밖에 # 정상적인 취급. / sbin / shutdown -h -P 이제 "전원 버튼을 눌렀습니다" fi
명시 적 텍스트는 shutdown
명령의 매개 변수로 제공됩니다 . 종료 프로그램에 의해 해당 문자열이 자동으로 기록 될 것으로 예상됩니다.
어쨌든, 명시 적 메시지를 얻으려면 아래 텍스트를 루트로 새로 작성 /etc/acpi/powerbtn.sh
하여 만든 실행 파일에 넣습니다.chmod a+x /etc/acpi/powerbtn.sh
#! / bin / sh /etc/acpi/powerbtn.sh의 로거, 아마도 "전원 버튼을 눌렀습니다" / sbin / shutdown -h -P 이제 "전원 버튼을 눌렀습니다"
이 방법을 사용하면 수정하는 것보다 오래 지속될 수 있습니다 /etc/acpi/powerbtn-acpi-support.sh
. 후자의 옵션은 다음 패키지 업그레이드에 영향을 미치지 않을 것입니다 acpi-support-base
.
Ubuntu 14.04와는 다른 점이 있습니다 ( 패키지 /etc/acpi/powerbtn.sh
와 다른 내용으로 이미 존재 함 acpid
). 또한 데비안 8은 아마 다르게 작동합니다. 변형을 자유롭게 제공하십시오.
전원 버튼을 누를 때 그리고 지금, 다음과 같은 라인에 나타납니다 /var/log/messages
, /var/log/syslog
그리고 /var/log/user.log
:
logger: in /etc/acpi/powerbtn.sh, presumably Power button pressed
이제 로그에 명시적인 메시지입니다.
acpi-support-base
및 acpid
패키지 고려를 제안한 @Bielecki에게 감사 합니다. 나는 나 자신을 테스트하지 않았습니다. 어떤 배포 및 버전에서 이점을 얻을 수 있는지 자세히 설명 할 수 있습니까?
(I는 호스트 재부팅이 손님의 완전 종료했다 있는지 궁금 곳) 점에서 그냥 칩 내 KVM VM에, 내가 필요한 것을 발견 /var/log/auth.log
(이외에 last -x shutdown
같은 표시). 이 라인들이 나타났습니다 :
Sep 3 23:56:31 Web systemd-logind[531]: Power key pressed.
Sep 3 23:56:31 Web systemd-logind[531]: Powering Off...
Sep 3 23:56:31 Web systemd-logind[531]: System is powering down.
Sep 3 23:55:45 Web systemd-logind[591]: New seat seat0.
Sep 3 23:55:45 Web systemd-logind[591]: Watching system buttons on /dev/input/event0 (Power Button)
Sep 3 23:55:54 Web sshd[805]: Server listening on 0.0.0.0 port 22.
Sep 3 23:55:54 Web sshd[805]: Server listening on :: port 22.
last -x
이 줄을 보여줍니다. 가장 최근의 순서대로 인쇄되고 있음을 알 수 있습니다 (즉, 마지막 줄을 먼저 읽은 다음 위로 이동). 시계 재설정 (부팅 전 23:56, 23:55 이후) 이전 행에서도 분명히 알 수 있듯이 순서는 다소 어리석은 것처럼 보입니다.
runlevel (to lvl 2) 3.13.0-129-gener Sun Sep 3 23:55 - 22:04 (22:08)
reboot system boot 3.13.0-129-gener Sun Sep 3 23:55 - 22:04 (22:08)
shutdown system down 3.13.0-123-gener Sun Sep 3 23:56 - 23:55 (00:00)
runlevel (to lvl 0) 3.13.0-123-gener Sun Sep 3 23:56 - 23:56 (00:00)
내 부분은 호스트가 부팅 될 때 게스트가 완전히 종료되었는지 확인하고 게스트 중 하나에 로그인하고 호스트를 부팅 할 때 호스트에 머물러 터미널에 다음 줄을 가져올 수 있습니다.
root@Web:~#
Broadcast message from root@Web
(unknown) at 22:25 ...
The system is going down for power off NOW!
Connection to web closed by remote host.
Connection to web closed.
cat /usr/adm/syslog
제 경우에는 서버를 종료하는 ups 소프트웨어였습니다.
/etc/rc.d/7/upsd.boot
/var/log/acpid
이 좋았습니다 : 전원 버튼이 맞았습니다. 다른 아이디어, 어리 석음이 단서를 제공하지 않으면 어디를 봐야합니까?