más tarde, dmesg admite el indicador -T, quizás intente usar -T si su dmesg lo admite.
ilansch
Centos 7+ soportadmesg -T
rogerdpack
Respuestas:
12
dmesglee el búfer de anillo de registro de Kernel. No hace marcas de tiempo. Lo que debe hacer es configurar syslog para tomar los registros del núcleo de ese búfer y enviarlos a un archivo (si aún no está configurado para hacerlo). Tenga en cuenta que, por /var/log/messageslo que recuerdo , la configuración predeterminada de syslog de CentOS 5.x envía registros del kernel .
Si desea enviar todos los registros del kernel (dmesg) a /var/log/kern.log, utilizando el demonio syslog predeterminado, agregará una línea como la siguiente a/etc/syslog.conf
Gracias por la respuesta. Para cualquiera que busque que esté ejecutando CentOS 6, lo encontré en/etc/rsyslog.conf
Safado
Sí, con CentOS (y RHEL) 6.x, cambiaron el demonio syslog predeterminado del viejo sysklogd a rsyslog. También está disponible como paquete (compatible) para RHEL / CentOS 5.x.
Christopher Cashell
1
Bueno, he tenido esto en mi lista de cosas que resolver, pero ahora me has ahorrado un poco en Google
Safado
8
Hay una solución "Habilitar marcas de tiempo para dmesg / Kernel Ring Buffer"
Puedes agregar:
printk.time=1
kernel cmdline.
En cuanto a mí, he agregado a rc.local en todas las máquinas con títeres. Es más fácil para mí):
if test -f /sys/module/printk/parameters/time; then
echo 1 > /sys/module/printk/parameters/time
fi
Usar rc.locales realmente una solución fea para esto (usar rc.locales casi siempre una solución fea para cualquier cosa). Una mejor solución sería poner o printk.time = 1ingresar /etc/sysctl.confun archivo /etc/sysctl.d/. Esa es la razón por la que existen estos archivos. Al meter cosas rc.local, eventualmente te dejará con una puesta en marcha frágil, enrevesada, desordenada y poco confiable.
Christopher Cashell
Este es el comentario de @ChristopherCashell es la única respuesta correcta a esta pregunta. Es una pena, no es una respuesta real.
Petr
1
He escrito este simple guión. Si, es lento. Si quieres algo más rápido, puedes escribir un script en Perl, Python o algo más. Estoy seguro de que este simple script puede darle la idea de cómo se puede calcular.
Tenga en cuenta que ignoré la fracción de segundos registrada en cada línea (después de. En la marca de tiempo).
perl -n es una forma de leer la entrada estándar y leer en la variable $ _.
El cuerpo (no la sección BEGIN) se ejecuta una vez para cada línea.
BEGIN ejecuta el código en {} una vez.
$ a es el comienzo de dmesg desde la época (segundos)
El comando s / ... toma el valor en $ _ y sustituye la parte \ s * #####. ###### de la marca de tiempo con la versión "localtime" del desplazamiento dmesg ($ 1) agregado a la hora de inicio del sistema ($ a)
print $ a imprime el dmesg con la marca de tiempo amigable de la localidad sustituida por la marca de tiempo "segundos desde el arranque".
perl -n es una forma de leer la entrada estándar y leer en la variable $ _.
El cuerpo (no la sección BEGIN) se ejecuta una vez para cada línea.
BEGIN ejecuta el código en {} una vez.
$ a es el comienzo de dmesg desde la época
El comando s / ... toma el valor en $ _ y sustituye la parte #####. ###### de la marca de tiempo con la versión "localtime" del desplazamiento dmesg ($ 1) agregado al inicio del sistema tiempo ($ a)
print $ a imprime el dmesg con la marca de tiempo amigable de la localidad sustituida por la marca de tiempo "segundos desde el arranque".
@kasperd Esto es lo que significa: - perl -n es una forma de leer la entrada estándar y leer en la variable $ _. El cuerpo (no la sección BEGIN) se ejecuta una vez para cada línea. - BEGIN ejecuta el código en {} una vez. $ a es el comienzo de dmesg desde la época: el s/...comando toma el valor en $ _ y sustituye la parte #####. ###### de la marca de tiempo con la versión "localtime" del desplazamiento dmesg ($ 1 ) agregado a la hora de inicio del sistema ($ a). - print $aimprime el dmesg con la marca de tiempo amigable localmente sustituida por la marca de tiempo "segundos desde el arranque".
dmesg -T
Respuestas:
dmesg
lee el búfer de anillo de registro de Kernel. No hace marcas de tiempo. Lo que debe hacer es configurar syslog para tomar los registros del núcleo de ese búfer y enviarlos a un archivo (si aún no está configurado para hacerlo). Tenga en cuenta que, por/var/log/messages
lo que recuerdo , la configuración predeterminada de syslog de CentOS 5.x envía registros del kernel .Si desea enviar todos los registros del kernel (dmesg) a
/var/log/kern.log
, utilizando el demonio syslog predeterminado, agregará una línea como la siguiente a/etc/syslog.conf
fuente
/etc/rsyslog.conf
Hay una solución "Habilitar marcas de tiempo para dmesg / Kernel Ring Buffer"
Puedes agregar:
kernel cmdline.
En cuanto a mí, he agregado a rc.local en todas las máquinas con títeres. Es más fácil para mí):
fuente
rc.local
es realmente una solución fea para esto (usarrc.local
es casi siempre una solución fea para cualquier cosa). Una mejor solución sería poner oprintk.time = 1
ingresar/etc/sysctl.conf
un archivo/etc/sysctl.d/
. Esa es la razón por la que existen estos archivos. Al meter cosasrc.local
, eventualmente te dejará con una puesta en marcha frágil, enrevesada, desordenada y poco confiable.He escrito este simple guión. Si, es lento. Si quieres algo más rápido, puedes escribir un script en Perl, Python o algo más. Estoy seguro de que este simple script puede darle la idea de cómo se puede calcular.
Tenga en cuenta que ignoré la fracción de segundos registrada en cada línea (después de. En la marca de tiempo).
Espero que ayude. :)
fuente
La modificación del script en la línea de caso no comienza con un "["
fuente
Esta es una actualización de la sugerencia de Plutoid, eliminando los espacios iniciales de la marca de tiempo.
fuente
Un pequeño script perl como se muestra a continuación. Es una forma general, y no soy el autor.
perl -n
es una forma de leer la entrada estándar y leer en la variable $ _.fuente
s/...
comando toma el valor en $ _ y sustituye la parte #####. ###### de la marca de tiempo con la versión "localtime" del desplazamiento dmesg ($ 1 ) agregado a la hora de inicio del sistema ($ a). -print $a
imprime el dmesg con la marca de tiempo amigable localmente sustituida por la marca de tiempo "segundos desde el arranque".