Android

Comando Dmesg no Linux

Ajuda Linux - Dia 782 - Comando dmesg

Ajuda Linux - Dia 782 - Comando dmesg

Índice:

Anonim

O kernel do Linux é o núcleo do sistema operacional que controla o acesso aos recursos do sistema, como CPU, dispositivos de E / S, memória física e sistemas de arquivos. O kernel grava várias mensagens no buffer de anel do kernel durante o processo de inicialização e quando o sistema está em execução. Essas mensagens incluem várias informações sobre a operação do sistema.

O buffer de anel do kernel é uma parte da memória física que contém as mensagens de log do kernel. Ele tem um tamanho fixo, o que significa que, quando o buffer estiver cheio, os registros de logs mais antigos serão substituídos.

O utilitário de linha de comando dmesg é usado para imprimir e controlar o buffer de anel do kernel no Linux e em outros sistemas operacionais semelhantes ao Unix. É útil para examinar mensagens de inicialização do kernel e depurar problemas relacionados a hardware.

Neste tutorial, abordaremos o básico do comando dmesg .

Usando o comando dmesg

A sintaxe para o comando dmesg é a seguinte:

dmesg

Quando chamado sem nenhuma opção, o dmesg grava todas as mensagens do buffer de anel do kernel na saída padrão:

dmesg

Por padrão, todos os usuários podem executar o comando dmesg . No entanto, em alguns sistemas, o acesso ao dmesg pode ser restrito para usuários não raiz. Nesta situação, ao chamar o dmesg você receberá uma mensagem de erro como abaixo:

dmesg: read kernel buffer failed: Operation not permitted

O parâmetro do kernel kernel.dmesg_restrict especifica se usuários sem privilégios podem usar o dmesg para visualizar mensagens do buffer de log do kernel. Para remover as restrições, defina-o como zero:

sudo sysctl -w kernel.dmesg_restrict=0

Normalmente, a saída contém muitas linhas de informação; portanto, apenas a última parte da saída é visível. Para ver uma página de cada vez, canalize a saída para um utilitário de pager, como less ou more :

dmesg --color=always | less

O --color=always é usado para preservar a saída colorida.

dmesg | grep -i usb

dmesg lê as mensagens geradas pelo kernel a partir do arquivo virtual /proc/kmsg . Este arquivo fornece uma interface para o buffer de anel do kernel e pode ser aberto apenas por um processo. Se o processo syslog estiver em execução no sistema e você tentar ler o arquivo com cat , ou less , o comando será interrompido.

O daemon syslog envia as mensagens do kernel para /var/log/dmesg , para que você também possa usar esse arquivo de log:

cat /var/log/dmesg

Formatando saída dmesg

O comando dmesg fornece várias opções que ajudam a formatar e filtrar a saída.

Uma das opções mais usadas do dmesg é -H ( --human ), que permite a saída legível por humanos. Esta opção canaliza a saída do comando em um pager:

dmesg -H

Para imprimir carimbos de data / hora legíveis por humanos, use a opção -T ( --ctime ):

dmesg -T

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

O formato de registro de data e hora também pode ser definido usando o --time-format opção, que pode ser ctime, reltime, delta, notime ou iso. Por exemplo, para usar o formato delta, você digitaria:

dmesg --time-format=delta

Você também pode combinar duas ou mais opções:

dmesg -H -T

Para assistir à saída do comando dmesg em tempo real, use a opção -w ( --follow ):

dmesg --follow

Filtrando saída dmesg

Você pode restringir a dmesg do dmesg a determinados recursos e níveis.

O recurso representa o processo que criou a mensagem. dmesg suporta os seguintes recursos de log:

  • kern - mensagens do kernel user - mensagens no nível do usuário mail - daemon sistema de correio - auth daemons do sistema - mensagens de segurança / autorização syslog - mensagens internas do syslogd lpr - news subsistema da impressora de linha - notícias do subsistema de redes

O -f ( --facility ) permite limitar a saída a instalações específicas. A opção aceita um ou mais recursos separados por vírgula.

Por exemplo, para exibir apenas as mensagens dos daemons do kernel e do sistema, você usaria:

dmesg -f kern, daemon

Cada mensagem de log está associada a um nível de log que mostra a importância da mensagem. dmesg suporta os seguintes níveis de log:

  • emerg - o sistema está inutilizável - a ação deve ser executada imediatamente crit - condições críticas err - condições de warn erro - aviso de condições de notice - informações normais, mas significativas - informações de condição normais, mas significativas - debug informativa - mensagens no nível da depuração

O -l ( --level ) restringe a saída a níveis definidos. A opção aceita um ou mais níveis separados por vírgula.

O comando a seguir exibe apenas o erro e as mensagens críticas:

dmesg -l err, crit

Limpando o buffer de anel

A opção -C ( --clear ) permite limpar o buffer do anel:

sudo dmesg -C

Somente root ou usuários com privilégios sudo podem limpar o buffer.

Para imprimir o conteúdo do buffer antes de limpar, use a opção -c ( --read-clear ):

sudo dmesg -c

dmesg > dmesg_messages

Conclusão

O comando dmesg permite visualizar e controlar o buffer de anel do kernel. Pode ser muito útil na solução de problemas de kernel ou hardware.

Digite man dmesg no seu terminal para obter informações sobre todas as opções dmesg disponíveis.

terminal do kernel dmesg