Qual é a diferença da saída do dmesg e / var / log / messages?

55

O AFAIK dmesgmostra informações sobre o kernel e os módulos do kernel e /var/log/messagestambém mostra as informações produzidas pelo kernel e pelos módulos.

Então qual a diferença? Faz /var/log/messages saída dmesg?

Mais informações que podem ser úteis:
- Há um buffer de anel do kernel , que eu acho que é o único e único local para armazenar dados de log do kernel.
- O artigo " Criação de log do kernel: APIs e implementação " no IBM DeveloperWorks descreveu as APIs e a imagem de exibição de pássaro.

xanpeng
fonte

Respostas:

51

dmesgimprime o conteúdo do buffer do anel. Essas informações também são enviadas em tempo real para syslogdou klogd, quando estão em execução, e terminam em /var/log/messages; quando dmesgé mais útil é capturar mensagens em tempo de inicialização de antes syslogde / ou klogdiniciadas, para que elas sejam registradas corretamente.

geekosaur
fonte
4
Então, /var/log/messagese dmesgmostrará os mesmos logs (em formato diferente) após syslogde / ou klogdiniciado?
Xanpeng 6/04/12
10
Após a klogdexecução, dmesgmostrará apenas as mensagens mais recentes do kernel (porque o buffer do anel é de tamanho fixo e, portanto, pode conter muito), sem registros de data e hora ou outras informações, enquanto /var/log/messagesreterá os logs de acordo com como logrotateestá configurado e inclui registro de data e hora (que será um pouco impreciso para as mensagens de inicialização iniciais porque dmesgnão as possui, portanto, o tempo klogdiniciado é usado para todas as mensagens lidas no buffer do kernel).
Geekosaur #
6
O @xanpeng dmesgcontém apenas mensagens do kernel, /var/log/messagesgeralmente também contém logs de aplicativos.
Gilles 'SO- stop be evil'
14

Isso depende do sistema operacional. Por exemplo, no Solaris, o dmesg é simplesmente um script de shell que mostra as últimas 200 linhas dos /var/adm/messages.*arquivos.

jlliagre
fonte
11
Também é colorido?
Hi-Angel
@ Hi-Angel Sem pós-processamento do arquivo de log, portanto não há coloração cat ... | tail -200.
Jlliagre
6
  • Podemos dizer que esse dmesgé o subconjunto /var/log/messagese é mantido no buffer de anel.
  • /var/log/messagesinclui todas as mensagens do sistema, incluindo a inicialização do sistema e as mensagens dmesg. Em poucas palavras, os logs dmesgsão despejados /var/log/messages.
  • /var/log/messagesmantenha os logs gerais de atividades do sistema e dmesgmantenha apenas os logs do kernel.
Bhagyesh Dudhediya
fonte
2

dmesg : dmesg é uma mensagem (tela ou driver). É usado para examinar ou controlar o buffer de anel do kernel.

mensagens : contém mensagens globais do sistema, incluindo as mensagens registradas durante a inicialização do sistema. Há várias coisas que estão conectadas, /var/log/messagesincluindo mail, cron, daemon, kern, auth, etc.

Mughil
fonte