¿Cuál es la diferencia de la salida dmesg y / var / log / messages?

55

AFAIK dmesgmuestra información sobre el núcleo y los módulos del núcleo, y /var/log/messagestambién muestra información producida por el núcleo y los módulos.

Entonces, ¿cuál es la diferencia? ¿ /var/log/messages salida de dmesg?

Más información que puede ser útil:
- Hay un búfer de anillo del núcleo , que creo que es el único y único lugar para almacenar datos de registro del núcleo.
- El artículo " Registro de kernel: API e implementación " en IBM DeveloperWorks describió las API y la imagen de vista de pájaro.

xanpeng
fuente

Respuestas:

51

dmesgimprime el contenido del buffer de anillo. Esta información también se envía en tiempo real a syslogdo klogd, cuando se están ejecutando, y termina en /var/log/messages; cuando dmesges más útil es capturar mensajes de tiempo de arranque de antes syslogdy / o klogdcomenzar, para que se registren correctamente.

geekosaur
fuente
44
Entonces, ¿ /var/log/messagesy dmesgmostrará los mismos registros (en diferentes formatos) después syslogdy / o klogdiniciado?
xanpeng
10
Después de klogdejecutarse, dmesgmostrará solo los mensajes del kernel más recientes (porque el búfer en anillo tiene un tamaño fijo y, por lo tanto, solo puede contener tanto), sin marcas de tiempo u otra información, mientras /var/log/messagesretendrá los registros de acuerdo con la logrotateconfiguración e incluirá la marca de tiempo (que será un poco impreciso para los mensajes de arranque iniciales porque dmesgno los tiene, por lo que el tiempo de klogdinicio se usa para todos los mensajes leídos del búfer del núcleo).
geekosaur
66
@xanpeng dmesgsolo contiene mensajes del kernel, /var/log/messagesgeneralmente también contiene registros de aplicaciones.
Gilles 'SO- deja de ser malvado'
14

Eso depende del sistema operativo. Por ejemplo, en Solaris, dmesg es simplemente un script de shell que muestra las últimas 200 líneas de los /var/adm/messages.*archivos.

jlliagre
fuente
1
¿Es colorido también?
Hola Ángel,
@ Hi-Angel No hay procesamiento posterior del archivo de registro, así que no hay color, solo cat ... | tail -200.
jlliagre
6
  • Podemos decir que dmesges el subconjunto de /var/log/messagesy se mantiene en el buffer de anillo.
  • /var/log/messagesincluye todos los mensajes del sistema, incluso desde el inicio del sistema junto con los mensajes en dmesg. En pocas palabras, los registros de dmesgson arrojados /var/log/messages.
  • /var/log/messagesmantiene los registros generales de actividad del sistema y dmesgsolo mantiene los registros del núcleo.
Bhagyesh Dudhediya
fuente
2

dmesg : dmesg es un mensaje (pantalla o controlador). Se utiliza para examinar o controlar el buffer del anillo del núcleo.

mensajes : contiene mensajes globales del sistema, incluidos los mensajes que se registran durante el inicio del sistema. Hay varias cosas que están conectadas, /var/log/messagesincluyendo correo, cron, daemon, kern, auth, etc.

Mughil
fuente