GNU/Linux >> Linux Esercitazione >  >> Linux

Come impedire ai messaggi del kernel di inondare la mia console?

Per impostare i valori in fase di esecuzione, usa sysctl . (Suppongo che si possa scrivere a /proc/sys/kernel/printk anche direttamente e apparentemente puoi anche usare dmesg -n CUR come descritto qui)

Visualizza:

# sysctl kernel.printk
kernel.printk = 2       4       1       7

I separatori nell'output sono schede singole, btw.

Impostare. Qui i separatori sono solo spazi. Funziona altrettanto bene.

# sysctl -w kernel.printk="2 4 1 7"
kernel.printk = 2 4 1 7
# sysctl kernel.printk
kernel.printk = 2       4       1       7

Vedi man sysctl - "configura i parametri del kernel in fase di esecuzione" per saperne di più.

Promemoria dei livelli di gravità e dei quattro valori di kernel.printk forniti da Brian sopra:

  • CUR =livello di gravità attuale; vengono stampati solo i messaggi più importanti di questo livello
  • DEF =livello di gravità predefinito assegnato ai messaggi senza livello
  • MIN =CUR minimo consentito
  • BTDEF =CUR predefinito all'avvio

Sul mio 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            

Questo è troppo rumoroso, voglio solo critico e attivo (nessun errore). I messaggi senza etichetta dovrebbero essere considerati come avvertimenti, quindi DEF va bene:

                     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            

Impostare su:3 4 1 3


Ti suggerisco di modificare il tuo /etc/sysctl.conf . Nello specifico, vuoi modificare la riga kernel.printk.

# Uncomment the following to stop low-level messages on console
kernel.printk = 3 4 1 3

Non sono sicuro di quali siano le impostazioni predefinite di centos, ma sembra probabile che le cose siano impostate in modo più dettagliato del necessario.

Vedi anche la sezione Shorewall sul disboscamento. Non devi utilizzare la destinazione LOG per la registrazione, puoi utilizzare altri strumenti o regolare la gravità del registro e modificare le cose per controllare dove vanno i tuoi messaggi.


Ho trovato utile anche questo. Nelle distribuzioni basate su RHEL puoi cat /proc/sys/kernel/printk per vedere quali sono le tue impostazioni attuali.

Quattro valori si trovano nel file printk. Ciascuno di questi valori definisce una regola diversa per la gestione dei messaggi di errore. Il primo valore, chiamato console loglevel, definisce la priorità più bassa dei messaggi stampati sulla console. (Si noti che, minore è la priorità, maggiore è il numero di loglevel.) Il secondo valore imposta il loglevel predefinito per i messaggi senza un loglevel esplicito ad essi collegato. Il terzo valore imposta la configurazione loglevel più bassa possibile per il loglevel della console. L'ultimo valore imposta il valore predefinito per il loglevel della console.

L'uso del parametro LOGLEVEL in /etc/sysconfig/init per impostare il loglevel della console non è più supportato. Per impostare il loglevel della console in Red Hat Enterprise Linux 6, passare loglevel=' come parametro del tempo di avvio. Ad esempio, loglevel=6 stamperà tutti i messaggi minori di 6 (non uguale a solo minore di).

Ringraziamo:

  • RHEL 6 - E.3.9. /proc/sys/
  • Linuxtopia - Livelli del log del kernel

Linux
  1. Come fermare sed dal buffering?

  2. Come accedere (se possibile) allo spazio del kernel dallo spazio utente?

  3. Come uscire da vim -y nella console?

  4. Come interrompere l'aggiunta di IP da EC2 a known_hosts per ssh?

  5. Come impedire lo scambio di un programma specifico?

Come costruire il kernel Linux da zero {Guida passo passo}

Come costruire il kernel Linux da zero

Come impedire a Orca di avviarsi all'accesso?

Come compilare il kernel Linux dal sorgente per creare un kernel personalizzato

Come posso ottenere la lunghezza di un file video dalla console?

Come disabilitare l'accesso del kernel al journal di systemd?