GNU/Linux >> Znalost Linux >  >> Linux

Jak zabránit tomu, aby zprávy jádra zaplavovaly moji konzoli?

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

Linux
  1. Jak zastavit sed ukládání do vyrovnávací paměti?

  2. Jak načíst moduly jádra Linuxu z kódu C?

  3. Jak přistupovat (pokud je to možné) k prostoru jádra z uživatelského prostoru?

  1. Jak ukončit vim -y v konzoli?

  2. Jak zastavit nginx v používání portu 80

  3. Jak zabránit výměně konkrétního programu?

  1. Jak nainstalovat jádro 5.13 v Ubuntu 18.04 z úložiště 20.04

  2. Jak zabránit automatickému restartování Windows10 VM na OpenStack!

  3. Jak zabránit změně MAC adresy po odpojení?