Trucs:Rediriger les messages système vers un terminal virtuel
Rediriger les messages système vers un terminal virtuel
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 mondechmod 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).