Chcete-li nastavit hodnoty za běhu, použijte sysctl
. (Předpokládám, že lze zapisovat do /proc/sys/kernel/printk
přímo také a zjevně můžete také použít dmesg -n CUR
jak je popsáno zde)
Displej:
# sysctl kernel.printk
kernel.printk = 2 4 1 7
Oddělovače ve výstupu jsou samostatné karty, mimo jiné
Soubor. Zde jsou oddělovače pouze mezery. Funguje také.
# sysctl -w kernel.printk="2 4 1 7"
kernel.printk = 2 4 1 7
# sysctl kernel.printk
kernel.printk = 2 4 1 7
Viz man sysctl
- "Konfigurovat parametry jádra za běhu" pro více.
Připomenutí úrovní závažnosti a čtyř hodnot kernel.printk uvedených Brianem výše:
- CUR =aktuální úroveň závažnosti; tisknou se pouze zprávy důležitější než tato úroveň
- DEF =výchozí úroveň závažnosti přiřazená zprávám bez úrovně
- MIN =minimální přípustná CUR
- BTDEF =výchozí CUR při spuštění
Na mém 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
To je příliš hlučné, chci jen kritické a nahoru (žádné chyby). Neoznačené zprávy by měly být považovány za varování, takže DEF je dobré:
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
Nastavit na:3 4 1 3
Navrhuji, abyste změnili /etc/sysctl.conf
. Konkrétně chcete vyladit řádek kernel.printk.
# Uncomment the following to stop low-level messages on console
kernel.printk = 3 4 1 3
Nejsem si jistý, jaké jsou výchozí nastavení centos, ale zdá se mi pravděpodobné, že věci jsou nastaveny podrobněji, než potřebujete.
Podívejte se také na sekci shorewall o těžbě dřeva. Pro protokolování nemusíte používat cíl LOG, můžete použít jiné nástroje nebo upravit závažnost protokolů a vyladit věci, abyste řídili, kam se vaše zprávy posílají.
Toto mi také pomohlo. U distribucí založených na RHEL můžete cat /proc/sys/kernel/printk
abyste viděli, jaká jsou vaše aktuální nastavení.
V souboru printk jsou nalezeny čtyři hodnoty. Každá z těchto hodnot definuje jiné pravidlo pro zacházení s chybovými zprávami. První hodnota, nazývaná konzola loglevel, definuje nejnižší prioritu zpráv vytištěných na konzoli. (Všimněte si, že čím nižší priorita, tím vyšší číslo úrovně protokolu.) Druhá hodnota nastavuje výchozí úroveň protokolu pro zprávy bez explicitní úrovně protokolu. Třetí hodnota nastavuje nejnižší možnou konfiguraci úrovně protokolu pro úroveň protokolu konzoly. Poslední hodnota nastavuje výchozí hodnotu pro úroveň protokolu konzoly.
Použití parametru LOGLEVEL v /etc/sysconfig/init k nastavení úrovně protokolu konzoly již není podporováno. Chcete-li nastavit úroveň protokolu konzoly v Red Hat Enterprise Linux 6, předejte loglevel=' jako parametr doby spouštění. Například loglevel=6 vytiskne všechny zprávy menší než 6 (ne rovno menší než).
Připsat:
- RHEL 6 – E.3.9. /proc/sys/
- Linuxtopia – úrovně protokolu jádra