Scommetto che vi sarà capitato qualche volta, mentre stavate facendo qualche cosa con un terminale virtuale (quelli che raggiungete premendo Ctrl+Alt+FX, dove X è un numero che in genere va da 1 a 6, ma dipende da quello che c'è scritto in /etc/inittab), che vi saltassero fuori cose come questa:
Insomma, voi siete lì che lavorate e magari state imparando come funziona la shell di Linux ma, quando inserite, chessò, una penna USB, vi si riempie il terminale di messaggi indesiderati che voi a stento capite.
Ebbene, a questo esiste una soluzione che potete usare anche subito ed è di facile implementazione.
Nota: Questo procedimento funziona solo per syslog, il logger più diffuso nelle distribuzioni moderne; Questo procedimento NON INTACCA dmesg o /var/log/messages, il log di default di Linux.
Gli "sproloqui" del kernel sono causati da una poco attenta configurazione di syslogd, un demone di log molto comune nelle distribuzioni moderne.
Syslogd intercetta i messaggi provenienti da alcuni ambienti (chiamati in gergo facilities, che possono essere facility di mail, il kernel, cron o le stampanti) e li deposita in posti prestabiliti. Il bello è che questi "luoghi" possono essere sia i file che i terminali, o anche nessuna parte.
Può capitare che ci siano alcune distribuzioni (come, a volte, la Ubuntu) che "spalmino" i messaggi di Linux per i terminali, senza un senso particolare. Ma a volte questa pratica è piuttosto fastidiosa per l'utente finale... però potrebbero esserci alcuni terminali che non vengono utilizzati fin da subito. E allora sfruttiamo uno di questi terminali liberi per dire a syslogd dove vogliamo che i messaggi del kernel vadano a raggrupparsi.
La fila di tasti più in alto sulla tastiera del vostro computer è occupata dai cosiddetti FX (ho già spiegato che X è un numero che parte da 1 e, sulla tastiera, arriva fino a 12, ovvero F1, F2, F3, F4, F5... fino a F12), che in Linux sono molto usati per viaggiare da un terminale all'altro. In ambienti standard i terminali dove è possibile accedere alla shell Linux vanno da 1 a 6 (quindi accessibili attraverso i tasti funzione da F1 a F6), mentre F7 è comunemente usato da X, ovvero l'interfaccia grafica.
I restanti terminali, da F8 a F12, sono generalmente liberi, e possiamo usarli come vogliamo.
Per esempio, esiste un modo per occuparli con ulteriori shell Bash e renderle interattive, ma qui noi vogliamo scaricarci i messaggi del kernel. Quindi scegliamo, a piacere, uno dei terminali da F8 a F12. Per esempio, prendiamo F12.
Adesso apriamo il file /etc/syslog.conf come amministratori (o utenti root), anche facendo sudo nano /etc/syslog.conf, o usando editor grafici come gedit (per GNOME) o kedit o kate (per KDE).
Personalmente comunque vi consiglio di fare una copia di backup della configurazione di syslog.conf prima di procedere, più che altro per sicurezza: è semplice, basta lanciare il comando sudo cp syslog.conf{,.old} nella directory /etc.
E ora apriamo syslog.conf con nano.
Probabilmente in distribuzioni standard troverete già una riga con su scritto
kern.* -/var/log/kern.log
Non dovete fare altro che commentarla aggiungendoci un cancelletto all'inizio:
# kern.* -/var/log/kern.log
E, subito sotto (o sopra) aggiungete la seguente riga:
kern.* /dev/tty12
Abbiamo messo /dev/tty12 perché corrisponde al terminale F12 che avevamo deciso poco fa. Ma avremmo potuto mettere un terminale qualsiasi, purchè compreso tra 8 e 12. Ricordate che il numero del tasto funzione corrisponde al numero del terminale che volete utilizzare.
Adesso salvate i file con Ctrl+O e uscite da nano con Ctrl+X, o salvate e uscite dall'editor grafico che state usando. Ricordate di salvare sempre il testo come ASCII o UTF-8 (Unicode) con "Line Feed" (o LF) come terminatore di riga, altrimenti il testo potrebbe risultare illeggibile a syslogd.
Non è finita qui. Dobbiamo dire al demone di syslogd di rileggere la configurazione e cominciare ad usare il terminale che gli abbiamo detto, altrimenti potrete vedere i risultati solo al prossimo riavvio.
Lanciate questo comando, sempre come root:
kill -HUP $(pidof syslogd)
Oppure
kill -HUP $(cat /var/run/syslogd.pid)
Adesso premete Ctrl+Alt+F12 (o Ctrl+Alt+<tastofunzione>, dove <tastofunzione> corrisponde al terminale che avete specificato nella configurazione) e provate ad inserire una periferica USB nel sistema, o montare un filesystem. Se avrete seguito tutto per filo e per segno vedrete una serie di righe come questa:
Congratulazioni, avete appena piegato syslogd e /dev/tty12 al vostro volere!
In qualsiasi momento è possibile ritornare alla configurazione precedente rimettendo a posto il backup che avete fatto, oppure togliendo il cancelletto dalla riga commentata e mettendolo alla riga con /dev/tty12, e facendo rileggere la configurazione a syslogd con il comando di kill che ho scritto sopra.
Dovete sapere che così è possibile consultare solo gli eventi più recenti. Per una analisi più approfondita esistono sempre gli insostituibili dmesg o /var/log/messages, rispettivamente un piccolo programma per mostrare il log del kernel a video e il log stesso del kernel, sempre consultabile tramite cat o less.
Inoltre nel terminale scelto potrete solo vedere i messaggi del kernel e non potrete interagire in alcun modo tramite gli input come tastiera o mouse. Ma il pregio innegabile di questo metodo sarà quel pizzico di ordine in più che avrete dato al vostro sistema GNU/Linux. E un pizzico di ordine qua, un pizzico di ordine là, avrete il vostro sistema sotto controllo, il che vuol dire molto, specialmente se avete appena cominciato a studiarvelo.
Si noti che i messaggi del kernel potrebbero cambiare rispetto a quelli mostrati, a seconda della struttura del kernel stesso in fase di compilazione da parte degli sviluppatori.
La gente che dice che "Linux è difficile" probabilmente non ha le idee chiare su che cosa debba fare... avete appena avuto la dimostrazione che per fare una cosa basta sapere che cosa scrivere, dove e quando. E adesso voi potrete vantarvi dicendo... "ho reindirizzato il log del kernel in tty12! "
MegaLab.it rispetta la tua privacy. Per esercitare i tuoi diritti scrivi a: privacy@megalab.it .
Copyright 2008 MegaLab.it - Tutti i diritti sono riservati