Um die Werte zur Laufzeit festzulegen, verwenden Sie sysctl
. (Ich nehme an, man kann in /proc/sys/kernel/printk
schreiben auch direkt und anscheinend kann man auch dmesg -n CUR
verwenden wie hier beschrieben)
Anzeige:
# sysctl kernel.printk
kernel.printk = 2 4 1 7
Die Trennzeichen in der Ausgabe sind übrigens einzelne Tabulatoren.
Satz. Hier sind die Trennzeichen nur Leerzeichen. Funktioniert auch.
# sysctl -w kernel.printk="2 4 1 7"
kernel.printk = 2 4 1 7
# sysctl kernel.printk
kernel.printk = 2 4 1 7
Siehe man sysctl
- "Kernelparameter zur Laufzeit konfigurieren" für mehr.
Erinnerung an die Schweregrade und die vier Werte von kernel.printk, die oben von Brian angegeben wurden:
- CUR =aktueller Schweregrad; nur Meldungen, die wichtiger als diese Ebene sind, werden gedruckt
- DEF =Standard-Schweregrad, der Nachrichten ohne Level zugewiesen wird
- MIN =minimal zulässiger CUR
- BTDEF =Standard-CUR beim Booten
Auf meinem CentOS:7 4 1 7
CUR DEF MIN BTDEF
0 - emergency x x
1 - alert x x x
2 - critical x x
3 - error x x
4 - warning x x x
5 - notice x x
6 - informational V V
7 - debug
Das ist zu laut, ich will nur kritisch und hoch (keine Fehler). Nachrichten ohne Label sollten als Warnung betrachtet werden, also ist DEF gut:
CUR DEF MIN BTDEF
0 - emergency x x
1 - alert x x x
2 - critical x x
3 - error V V
4 - warning x
5 - notice
6 - informational
7 - debug
Eingestellt auf:3 4 1 3
Ich schlage vor, Sie ändern Ihren /etc/sysctl.conf
. Insbesondere möchten Sie die Zeile kernel.printk anpassen.
# Uncomment the following to stop low-level messages on console
kernel.printk = 3 4 1 3
Ich bin mir nicht sicher, was die Centos-Standardeinstellungen sind, aber ich scheine wahrscheinlich, dass die Dinge ausführlicher eingestellt sind, als Sie brauchen.
Siehe auch den Shorewall-Abschnitt über Protokollierung. Sie müssen das LOG-Ziel nicht für die Protokollierung verwenden, Sie können andere Tools verwenden oder den Schweregrad des Protokolls anpassen und Dinge optimieren, um zu steuern, wohin Ihre Nachrichten gehen.
Das fand ich auch hilfreich. Auf RHEL-basierten Distributionen können Sie cat /proc/sys/kernel/printk
um Ihre aktuellen Einstellungen zu sehen.
In der printk-Datei werden vier Werte gefunden. Jeder dieser Werte definiert eine andere Regel für den Umgang mit Fehlermeldungen. Der erste Wert, der als Konsolen-Loglevel bezeichnet wird, definiert die niedrigste Priorität von Meldungen, die an die Konsole ausgegeben werden. (Beachten Sie, dass die Loglevel-Nummer umso höher ist, je niedriger die Priorität ist.) Der zweite Wert legt das Standard-Loglevel für Nachrichten fest, denen kein explizites Loglevel angehängt ist. Der dritte Wert legt die niedrigstmögliche Loglevel-Konfiguration für das Console-Loglevel fest. Der letzte Wert setzt den Standardwert für den Loglevel der Konsole.
Die Verwendung des LOGLEVEL-Parameters in /etc/sysconfig/init zum Festlegen des Konsolen-Loglevels wird nicht mehr unterstützt. Um den Loglevel der Konsole in Red Hat Enterprise Linux 6 festzulegen, übergeben Sie loglevel=' als Parameter für die Bootzeit. Beispielsweise gibt loglevel=6 alle Nachrichten kleiner als 6 aus (nicht gleich kleiner als).
Gutschrift an:
- RHEL 6 – E.3.9. /proc/sys/
- Linuxtopia - Kernel-Protokollebenen