[Linux] 커널 로그 출력 - dmesg

dmesg

dmesg(diagnostic message)는 kernel의 ring buffer를 출력하는 명령어로 부팅 시에 인식한 장치등 시스템 진단에 필요한 로그들을 제공한다.

부팅 이후에도 특정 사용자의 su 전환 실패 로그, I/O 장치 오류 등 시스템 운영에 필요한 정보를 출력하므로 익혀두는게 좋다.

kernel log 출력

옵션 없이 사용하면 커널의 로그를 출력함.

$ sudo dmesg

💡

journalctl -k 명령어도 dmesg와 동일하게 kernel의 ring buffer를 출력한다.


dmesg로 출력되는 로그의 양이 많기 때문에 내용을 검색하려면 pipe로 연결 후 grep 명령어를 실행해주면 된다.

$ sudo dmesg | grep -i "jenkins"

스크롤 하면서 천천히 보려면 lessmore 같은 pager를 파이프로 연결해주면 된다.

$ sudo dmesg | more
$ sudo dmesg | less

Level 별 출력

너무 많은 정보가 제공될 경우 level을 지정해서 원하는 레벨의 로그만 출력할 수 있다. 아래 예제는 error 레벨의 커널 로그 메시지만 출력한다.

$ sudo dmesg --level err

지원하는 로그 레벨은 –help 옵션으로 확인 가능하다.

$ sudo dmesg --help

Supported log levels (priorities):
   emerg - system is unusable
   alert - action must be taken immediately
    crit - critical conditions
     err - error conditions
    warn - warning conditions
  notice - normal but significant condition
    info - informational
   debug - debug-level messages

facility 별 출력

로깅 시 어떤 프로그램이 로깅을 남겼는지 확인하기 위해 facility 라고 불리우는 분류 코드가 있으며 dmesg에는 -f 옵션으로 facility를 정해서 출력이 가능하다. 다음은 인증 관련한 오류만 출력하는 예제이다.

$ sudo dmesg -f auth

변경사항 대기

dmesg는 현재 로그를 출력하고 프로그램이 종료된다. 새로운 로그가 추가 되었는지 확인하려면 반복해서 dmesg를 실행해야 한다. -w 옵션을 추가하여 taif 명령어의 -f 옵션처럼 대기하며 새로운 메시지가 추가되면 콘솔에 출력한다.

$ sudo dmesg -w

관련 글

지식 공유3분 읽기

[Linux] Ubuntu 24.04 -> Rocky 10 마이그레이션

개요 기존 홈서버에서 운영 중인 Ubuntu 24.04 서버의 모든 서비스( Docker , Gatsby , 데이터 등등)를 새로운 Rocky 서버로 누락 없이 이관하기 위한 과정을 기록해보려고 합니다. 사전 준비 작업 전에, 양쪽...

리눅스
지식 공유3분 읽기

[Linux] 테스트 서버 디스크 장애 이슈

개요 OS : Rocky 8.10 디스크 구성 /dev/sda : 메인 디스크 /dev/sdb : 백업 디스크 상황 평소에 서버 로그에 READ sda .... , swap 관련 메시지가 간간히 보였음. 어느 날 I/O 관련 로그가...

리눅스
지식 공유1분 읽기

[Linux] SSH Keygen으로 원격 접속 키 생성하기

SSH Key 인증? SSH Key 인증은 비대칭 암호화라는 방식을 사용합니다. 한 쌍의 키(Key Pair)를 생성하여 하나는 내가 가지고 있고(개인 키, Private Key), 하나는 서버에 등록(공개 키, Public Key)...

리눅스