GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Linux Centos mit dmesg-Zeitstempel

Lösung 1:

dmesg liest den Ringpuffer des Kernel-Protokolls. Es macht keine Zeitstempel. Was Sie tun sollten, ist, Syslog so zu konfigurieren, dass es die Kernel-Protokolle aus diesem Puffer holt und sie an eine Datei sendet (falls dies nicht bereits so eingestellt ist). Beachten Sie, dass die standardmäßige Syslog-Konfiguration von CentOS 5.x Kernel-Protokolle an /var/log/messages sendet , soweit ich mich erinnere.

Wenn Sie alle Kernel-Protokolle (dmesg) an /var/log/kern.log senden möchten , würden Sie bei Verwendung des Standard-Syslog-Daemons eine Zeile wie die folgende zu /etc/syslog.conf hinzufügen

kern.*                         /var/log/kern.log

Lösung 2:

Es gibt die Lösung "Enabling Timestamps for dmesg/Kernel Ring Buffer"

Sie könnten hinzufügen:

printk.time=1

zur Kernel-Cmdline.

Was mich betrifft, so habe ich rc.local auf allen Rechnern mit Puppet hinzugefügt. Es ist einfacher für mich) :

if test -f /sys/module/printk/parameters/time; then
   echo 1 > /sys/module/printk/parameters/time
fi

Lösung 3:

Ich habe dieses einfache Skript geschrieben. Ja, es ist langsam. Wenn Sie etwas schnelleres wollen, schreiben Sie entweder tatsächlich ein Skript für Perl, Python oder etwas anderes. Ich bin sicher, dass dieses einfache Skript Ihnen einen Eindruck davon vermitteln kann, wie es berechnet werden kann.

Bitte beachten Sie, dass ich den in jeder Zeile registrierten Sekundenbruchteil (nach dem . im Zeitstempel) ignoriert habe.

#!/bin/bash
localtime() {
 perl -e "print(localtime($1).\"\n\");";
}

upnow="$(cut -f1 -d"." /proc/uptime)"
upmmt="$(( $(date +%s) - ${upnow} ))"

dmesg | while read line; do
 timestamp="$(echo "${line}" | sed "s/^\[ *\([0-9]\+\).*/\1/g")"
 timestamp=$(( ${timestamp} + ${upmmt} ))
 echo "${line}" | sed "s/^[^]]\+]\(.*\)/$(localtime "${timestamp}") -\1/g"
done

Ich hoffe, es hilft. :)


Linux
  1. Analysieren Sie den Linux-Kernel mit ftrace

  2. Linux – Sind verschiedene Linux/Unix-Kernel austauschbar?

  3. Standard-Kernel ändern (mit altem Kernel booten) – CentOS/RHEL/OEL 7

  4. CentOS / RHEL :Ausschluss mit Yum für Kernel-Updates

  5. Umbenennen von Dateien unter Linux mit einer Regex

Linux-Kernel vs. Mac-Kernel

Verwalten und überwachen Sie Linux-Kernel-Module mit Kmon

Zeitstempel mit Ping-Befehlsausgabe in Linux drucken

Patchen Sie den Raspberry Pi Linux Kernel mit KernelCare KOSTENLOS!

Zeigen Sie Linux-Kernel-Modulinformationen mit dem Modinfo-Befehl an

Aktualisieren Sie den Linux-Kernel von CentOS 8