dmesg는 내용을 읽는 명령입니다 /var/log/dmesg
. 대조적으로 좋은 점 less /var/log/dmesg
은 -T 플래그를 사용하여 사람이 읽을 수 있는 시간 출력을 얻을 수 있다는 것입니다.
/var/log/dmesg.0
이제 내 컴퓨터가 어떻게 충돌하는지 확인하고 싶습니다 . 이 파일에는 이전 세션의 로그가 포함되어 있습니다. 하지만 dmesg 명령에서 -T 플래그를 사용하고 싶습니다. 아니면 그런 것.
어떻게 해야할지 아시나요?
그래픽 도구는 마음에 들지 않지만 가장 좋은 것은 CLI 솔루션입니다.
답변1
OP가 좀 늦었지만..
저는 Fedora를 사용하지만 귀하의 시스템이 Fedora를 사용하는 경우 journalctl
이전 종료/충돌(일부 형식)에 대한 커널 메시지(dmesg 로그)를 쉽게 얻을 수 있습니다.dmesg -T
옵션:
- -k(dmesg)
- -b <부팅 번호> (0, -1, -2 등 이전에 다시 시작한 횟수)
- -o 짧은 정밀도(dmesg -T)
- -피우선순위우선순위에 따른 출력 필터링(4개는 알림 및 메시지 필터링)
참고: 날짜와 날짜 및 시간을 각각 iso 형식으로 제공하는 -o short
및 도 있습니다 .-o short-iso
주문하다:
- 모든 부팅 주기:
journalctl -o short-precise -k -b all
- 현재 시작됨:
journalctl -o short-precise -k
- 마지막 부팅:
journalctl -o short-precise -k -b -1
- 이전 부츠 두 켤레:
journalctl -o short-precise -k -b -2
- 등.
예제 출력:
Feb 18 21:41:26.917400 localhost.localdomain kernel: usb 2-4: USB disconnect, device number 12
Feb 18 21:41:26.917678 localhost.localdomain kernel: usb 2-4.1: USB disconnect, device number 13
Feb 18 21:41:27.246264 localhost.localdomain kernel: usb 2-4: new high-speed USB device number 22 using xhci_hcd
Feb 18 21:41:27.419395 localhost.localdomain kernel: usb 2-4: New USB device found, idVendor=05e3, idProduct=0610
Feb 18 21:41:27.419581 localhost.localdomain kernel: usb 2-4: New USB device strings: Mfr=1, Product=2, SerialNumber=0
Feb 18 21:41:27.419739 localhost.localdomain kernel: usb 2-4: Product: USB2.0 Hub
Feb 18 21:41:27.419903 localhost.localdomain kernel: usb 2-4: Manufacturer: GenesysLogic
리뷰 가능한 부츠 개수는 다음과 같이 확인할 수 있습니다.
journalctl --list-boot
출력은 journalctl --list-boot
아래와 같습니다.
-6 cc4333602fbd4bbabb0df2df9dd1f0d4 Sun 2016-11-13 08:32:58 JST—Thu 2016-11-17 07:53:59 JST
-5 85dc0d63e6a14b1b9a72424439f2bab4 Fri 2016-11-18 22:46:28 JST—Sat 2016-12-24 02:38:18 JST
-4 8abb8267e06b4c26a2466562f3422394 Sat 2016-12-24 08:10:28 JST—Sun 2017-02-12 12:31:20 JST
-3 a040f5e79a754b2a9055ac2598d430e8 Sun 2017-02-12 12:31:36 JST—Sat 2017-02-18 21:31:04 JST
-2 6c29e3b6f6a14f549f06749f9710e1f2 Sat 2017-02-18 21:31:15 JST—Sat 2017-02-18 22:36:08 JST
-1 42fd465eacd345f7b595069c7a5a14d0 Sat 2017-02-18 22:51:22 JST—Sat 2017-02-18 23:08:30 JST
0 26ea10b064ce4559808509dc7f162f07 Sat 2017-02-18 23:09:25 JST—Sun 2017-02-19 00:57:35 JST
답변2
근본적인 오해를 풀려면 dmesg
을 읽지 마세요 /var/log/dmesg
. 커널 링 버퍼에서 직접 읽고 마지막 N개 메시지를 제공합니다. 부팅 프로세스가 끝날 무렵 dmesg
부팅 메시지를 작성하라는 호출이 이루어집니다 /var/log/dmesg
(일반적인 방식으로 파일의 이전 버전 회전).
syslogd
syslog( , rsyslogd
등 ) 를 실행하면 syslog-ng
커널 버퍼에서 데이터를 읽고 이를 파일(예 /var/log/kern.log
: . 시스템이 충돌하기 전에 디스크에 쓰고 디스크 버퍼를 플러시할 수 있었다고 가정하면 거기서 커널의 죽어가는 비명을 발견하게 될 것입니다.
내 Debian 시스템에서는 /var/log/kern.log
파일에 사람이 읽을 수 있는 타임스탬프가 포함되어 있습니다.
답변3
Debian에서 dmesg
로그는 다음과 같이 저장됩니다.
/var/log/dmesg
(실시간 및 비압축)/var/log/dmesg.0
(마지막 세션 및 압축되지 않음)/var/log/dmesg.1.gz
(두 번째 및 압축)/var/log/dmesg.2.gz
(카운트다운, 카운트다운, 전면 및 압축)/var/log/dmesg.3.gz
(마지막에서 4번째, 압축됨)/var/log/dmesg.4.gz
(마지막에서 다섯 번째, 압축됨)
적절한 권한이 있는 경우 (일반 파일의 경우) 및 압축 파일의 경우 , 또는 를 사용하거나 읽을 cat
수 있습니다.more
less
zcat
zmore
zless
답변4
알파인리눅스의 경우,
echo 'previous_dmesg=yes' >> /etc/conf.d/bootmisc
mv /var/log/dmesg /var/log/dmesg.old
bootmisc에서 실행 됩니다 .