기계적 인조 인간

리눅스에서 Dmesg 명령

dmesg session

dmesg session

차례:

Anonim

Linux 커널은 CPU, I / O 장치, 실제 메모리 및 파일 시스템과 같은 시스템 리소스에 대한 액세스를 제어하는 ​​운영 체제의 핵심입니다. 커널은 부팅 프로세스 중 및 시스템이 실행 중일 때 다양한 메시지를 커널 링 버퍼에 씁니다. 이 메시지에는 시스템 작동에 대한 다양한 정보가 포함됩니다.

커널 링 버퍼는 커널의 로그 메시지를 보유하는 실제 메모리의 일부입니다. 크기가 고정되어 버퍼가 가득 차면 이전 로그 레코드를 덮어 씁니다.

dmesg 명령 줄 유틸리티는 Linux 및 기타 Unix 계열 운영 체제에서 커널 링 버퍼를 인쇄하고 제어하는 ​​데 사용됩니다. 커널 부팅 메시지를 검사하고 하드웨어 관련 문제를 디버깅하는 데 유용합니다.

이 자습서에서는 dmesg 명령의 기본 사항을 설명합니다.

dmesg 명령 사용

dmesg 명령의 구문은 다음과 같습니다.

dmesg

옵션없이 호출하면 dmesg 는 커널 링 버퍼의 모든 메시지를 표준 출력에 씁니다.

dmesg

기본적으로 모든 사용자는 dmesg 명령을 실행할 수 있습니다. 그러나 일부 시스템에서는 루트 사용자가 아닌 사용자의 경우 dmesg 대한 액세스가 제한 될 수 있습니다. 이 상황에서 dmesg 를 호출하면 아래와 같은 오류 메시지가 나타납니다.

dmesg: read kernel buffer failed: Operation not permitted

커널 매개 변수 인 kernel.dmesg_restrict 권한이없는 사용자가 dmesg 를 사용하여 커널의 로그 버퍼에서 메시지를 볼 수 있는지 여부를 지정합니다. 제한을 제거하려면 0으로 설정하십시오.

sudo sysctl -w kernel.dmesg_restrict=0

일반적으로 출력에는 많은 정보 행이 포함되므로 출력의 마지막 부분 만 볼 수 있습니다. 한 번에 한 페이지를 보려면 출력을 more less 거나 같은 페이저 유틸리티로 파이프하십시오.

dmesg --color=always | less

--color=always 는 컬러 출력을 유지하는 데 사용됩니다.

dmesg | grep -i usb

dmesg /proc/kmsg 가상 파일에서 커널에 의해 생성 된 메시지를 읽습니다. 이 파일은 커널 링 버퍼에 대한 인터페이스를 제공하며 하나의 프로세스로만 열 수 있습니다. syslog 프로세스가 실행 중이고 cat less 의 파일을 읽으려고하면 명령이 정지됩니다.

syslog 데몬은 커널 메시지를 /var/log/dmesg 덤프하므로 해당 로그 파일을 사용할 수도 있습니다.

cat /var/log/dmesg

dmesg 출력 형식화

dmesg 명령은 출력을 형식화하고 필터링하는 데 도움이되는 많은 옵션을 제공합니다.

dmesg 의 가장 많이 사용되는 옵션 중 하나는 -H ( --human )이며, 이는 사람이 읽을 수있는 출력을 가능하게합니다. 이 옵션은 명령 출력을 호출기로 파이프합니다.

dmesg -H

사람이 읽을 수있는 타임 스탬프를 인쇄하려면 -T ( --ctime ) 옵션을 사용하십시오.

dmesg -T

IPv6: ADDRCONF(NETDEV_CHANGE): wlp1s0: link becomes ready

타임 스탬프 형식은 --time-format 사용하여 설정할 수도 있습니다. 옵션은 ctime, reltime, delta, notime 또는 iso 일 수 있습니다. 예를 들어 델타 형식을 사용하려면 다음을 입력하십시오.

dmesg --time-format=delta

두 가지 이상의 옵션을 결합 할 수도 있습니다.

dmesg -H -T

dmesg 명령의 출력을 실시간으로 보려면 -w ( --follow ) 옵션을 사용하십시오.

dmesg --follow

필터링 dmesg 출력

dmesg 출력을 주어진 시설과 레벨로 제한 할 수 있습니다.

기능은 메시지를 생성 한 프로세스를 나타냅니다. dmesg 는 다음 로그 기능을 지원합니다.

  • kern 커널 메시지 user -사용자 레벨 메시지 mail -메일 시스템 daemon -시스템 디먼 auth -보안 / 권한 부여 메시지 syslog 내부 syslogd 메시지 lpr 라인 프린터 서브 시스템 news -네트워크 뉴스 서브 시스템

-f (- --facility ) 옵션을 사용하면 출력을 특정 시설로 제한 할 수 있습니다. 이 옵션은 쉼표로 구분 된 하나 이상의 기능을 허용합니다.

예를 들어, 커널 및 시스템 데몬 메시지 만 표시하려면 다음을 사용하십시오.

dmesg -f kern, daemon

각 로그 메시지는 메시지의 중요도를 나타내는 로그 수준과 연결됩니다. dmesg 는 다음 로그 수준을 지원합니다.

  • emerg -시스템을 사용할 수 없음 alert -조치를 즉시 수행해야 함 치명적 조건 err -오류 조건 warn -경고 조건 notice -정상이지만 중요한 조건 info -정보 debug -디버그 레벨 메시지

-l ( --level ) 옵션은 출력을 정의 된 수준으로 제한합니다. 이 옵션은 쉼표로 구분 된 하나 이상의 수준을 허용합니다.

다음 명령은 오류 및 중요 메시지 만 표시합니다.

dmesg -l err, crit

링 버퍼 지우기

-C ( --clear ) 옵션을 사용하면 링 버퍼를 지울 수 있습니다.

sudo dmesg -C

sudo 권한을 가진 루트 또는 사용자 만 버퍼를 지울 수 있습니다.

지우기 전에 버퍼 내용을 인쇄하려면 -c ( --read-clear ) 옵션을 사용하십시오.

sudo dmesg -c

dmesg > dmesg_messages

결론

dmesg 명령을 사용하면 커널 링 버퍼를보고 제어 할 수 있습니다. 커널 또는 하드웨어 문제를 해결할 때 매우 유용 할 수 있습니다.

사용 가능한 모든 dmesg 옵션에 대한 정보를 보려면 터미널에 man dmesg 를 입력하십시오.

dmesg 커널 터미널