Trucs:Rediriger les messages système vers un terminal virtuel

De Lea Linux
Aller à la navigation Aller à la recherche

Rediriger les messages système vers un terminal virtuel

olio<st@lea-linux.org>

En effet, le système envoie tout le temps des messages d'avertissement, d'information, d'alerte etc. Par défaut ils vont dans un fichier. C'est bien, mais quand on a un problème, se taper les 25000 lignes du fichier pour trouver le message d'erreur datant de 10 secondes c'est un peu pénible...

Pour arranger cela on va aussi envoyer ces messages à l'écran, pas question de l'envoyer aussi sur un écran qui nous sert à travailler : c'est pénible de recevoir des messages toutes les secondes à l'écran, mais comme Linux (Unix) est très bien fait avec ses terminaux virtuels, on va envoyer ça sur le terminal virtuel n°8, tty8 (accessible par Ctrl-Alt-F8 ), pour cela :

Editer le fichier /etc/syslog.conf
Copiez toutes les lignes qui finissent par /var/log/message, en changeant justement le /var/log/message par /dev/tty8.

Une fois ce travail accompli, on va relancer le système de message pour que nos changements soient pris en compte :
tapez : ps -aux | grep syslogd

Une fois le numéro de process de syslogd repéré (le PID), on le relance :
Vous pouvez taper : kill -1 PID

killall syslogd, service syslogd restart (sur Mandriva) ou /etc/init.d/sysklogd restart (sur Debian) fonctionnent aussi pour redémarrer le démon.

Basculez alors sur tty8 (Ctrl-Alt-F8) et vous allez voir votre premier message système redirigé :
13.23 PM: Syslogd restarted
ou quelque chose du genre.

Maintenant vous pouvez voir tous les messages système en temps réel sur le tty8 en tapant Ctrl-Alt-F8.

Rediriger temporairement les erreurs sur un terminal

Une méthode relativement simple pour rediriger les erreurs sur un terminal virtuel : tail -f /var/log/syslog Cela permet de vérifier à chaque instant quelles sont les modifications sur le fichier en temps réel. tail -f [fichier à surveiller]

Astuce voisine

Pour rediriger les messages système vers un tube nommé, par exemple pour les voir avec roottail sur le fond d’écran, ou pour les afficher dans un xterm, on peut envoyer tous les messages systèmes vers un tube nommé.

Voici une démarche :

  • Créer un groupe alllog, dans lequel seront placés les utilisateurs autorisés à regarder les messages, éditer /etc/group
  • Créer un tube nommé dans /var/log, mkfifo /var/log/alllog
  • Le groupe alllog en est propriétaire, chown :alllog /var/log/alllog et le rendre illisible par le reste du monde chmod 640 /var/log/alllog
  • Éditer /etc/syslog.conf et y ajouter la ligne *.* |/var/log/alllog
  • Redémarrer syslogd (ou sysklogd selon la distribution)
  • Taper dans une console while [ true ] ; do cat /var/log/alllog|grep -v sensord ;done (le grep -v permet de supprimer les lignes de sensord, qui revenaient toutes les dix secondes, on peut aussi demander à syslogd de le faire).