Un atout dans les systèmes GNU/Linux, c’est principalement la « verbosité » du système.
Cela signifie, que lorsque vous avez un système GNU/Linux installé, soit sur votre machine, soit sur un serveur distant, vous pouvez consulter en temps réel les informations renvoyées par le système (dans une console / fenêtre terminal en local, ou connecté en SSH à un serveur distant).
Ce post s’adresse évidemment à un niveau plutôt débutant.
Les principales remontées d’informations sont les logs systèmes, le plus généralement inscrits dans le fichier /var/log/messages.
Pour suivre l’activité du fichier, vous allez pouvoir utiliser la commande « tail » comme ceci :
[bash]tail -f /var/log/messages[/bash]
Avec cette commande, les informations vont défiler automatiquement sur la sortie standard (votre console). Pour interrompre la consultation, pressez :
CTRL+C (les 2 touches en même temps).
Vous pouvez également conserver le processus actif, et reprendre la main sur la console, en plaçant le processus en arrière plan :
Lancement de la commande :
[bash]tail -f /var/log/messages[/bash]
Presser CTRL+Z (passage en arrière plan, en pause)
Taper : bg
La tache reste active en arrière plan (background).
Vous noterez qu’après avoir pressé CTRL+Z, la tache est numérotée [1] (ici 1, la première en arrière plan), et se retrouve à l’état « Stopped ». C’est en tapant « bg » et en validant, que la tache devient active.
Vous pouvez ainsi taper d’autres commandes, tout en ayant la visibilité sur les logs. Notez que les logs s’affichent quoi que vous fassiez, ce qui peut parasiter si vous être en train de taper autre chose.
L’intérêt de la chose, est, par exemple, de pouvoir monitorer en temps réel plusieurs fichiers de log, et pouvoir agir.
Par exemple, je veux surveiller en même temps mes logs systèmes, et mes logs apache (serveur web httpd) lorsque je le relance pour voir si tout va bien.
On part du principe qu’on est connecté en root (ou sudo bash) dans le terminal :
Analyse des logs système :
[bash]tail -f /var/log/messages[/bash]
Puis je presse CTRL+Z
Activation de la tâche en arrière plan :
taper : bg
Analyse simultanée des logs apache :
[bash]tail -f /var/log/httpd/error_log[/bash]
Passage en arrière plan : CTRL+Z
Activation de cette autre tâche en arrière plan :
bg
(vous noterez le petit [2] indiquant qu’il s’agit de la deuxième tâche tournant en arrière plan).
Puis je relance mes services pour voir ce que ça donne :
[bash]/etc/init.d/httpd restart[/bash]
(Vous aurez évidemment apache d’installé sur votre machine pour cet exemple !).
Vous verrez donc défiler les informations « habituelles » de redémarrage du service, et les logs générés par tout ceci.
Enfin, car vous allez en avoir besoin, il faut ramener les tâche en premier plan afin de pouvoir les interrompre !
Vous pouvez donc rappeler vos processus, soit simplement via la commande « fg » (foreground) comme ceci :
[bash]fg[/bash]
Soit en appelant la commande voulue par son numéro :
[bash]fg 1[/bash]
Puis il suffit de presser CTRL+C pour interrompre la tâche. Répétez la commande « fg » jusqu’à avoir le message :
[bash]bash: fg: current : tâche inexistante[/bash]
C’est bon il ne reste aucun processus en arrière plan !
Ceci est évidemment utilisable avec tous les logs renvoyés par le système, que vous trouvez généralement dans le dossier /var/log.
S’il vous arrive par erreur d’utiliser la commande « tail » sur un binaire (un programme), l’environnement de votre console peut être « chamboulé » et les caractères affichés devenir illisibles. Dans ce cas, appuyez sur CTRL+C et tapez la commande
[bash]reset[/bash]
(même si les caractères ne s’affichent pas correctement) et la situation devrait être rétablie.
J’espère que ce petit article pourra être utile à certains.
Note, pour lister les processus en arrière plan et les identifier par leur numéro vous pouvez simplement utiliser la commande « jobs » qui va lister les processus par numero et par nom. :D
Autre note, si vous lancez un processus et que vous voulez le détacher complètement de votre tty (console/terminal) il y a l’instruction « disown » propre à BASH.
En gros, vous lancez votre process en arrière-plan :
[bash]./mon_script_ou_programme.sh param1 param2 &[/bash]
Votre processus passe en arrière plan et son PID s’affiche (comme dans la liste des jobs). Il vous suffit donc de taper :
[bash]disown xxxx[/bash]
(où xxxx est le PID de votre processus).
Voilà, vous avez lâché un programme dans le cyber espace de votre système, en toute autonomie. Si vous fermez votre terminal le programme continuera à s’exécuter. Youpiii… ou pas.
Si par erreur vous voulez vite l’arrêter car vous avez oublié un truc :
[bash]ps aux|grep mon_script_ou_programme.sh[/bash]
Et vous récupérez le PID xxx, à tuer avec un petit :
[bash]kill -9 xxx[/bash]
Salut ! Je sais que ce billet date un peu, mais je me permet tout de même d’intervenir, et ce sur deux points :
1 – Pour surveiller le système et donc les logs, il est nécessaire d’appartenir au groupe adm ( « adm : Le groupe adm est utilisé pour les tâches de surveillance du système. » ). Ainsi un petit « adduser adm » permet un a utilisateur lambda l’accès (en lecture) aux logs du système, et évites par conséquent d’avoir à se logger en super-user.
2 – J’utilise personnelement deux programmes : screen ( pas nécessaire d’être présenté je pense ) et multitail ( nom suffisament évocateur ? ). Multitails permet, au sein d’un(e) seul(e) terminal / console d’afficher plusieur logs, de la même façon que « tail -f /var/log/syslog » ( par exemple ).
Just download version corresponding to your operating system, of native jar release executable within your Java Runtime (requires java 8_40 or higher):
Merci pour ces différents conseils, je me suis empressé de mettre cette page en favoris car je dois malgré tout souvent faire appel à ces commandes et j’ai du mal à m’en souvenir à chaque fois …
Alors cette petite page sur tail ne va pas me faire de mal :D
Note, pour lister les processus en arrière plan et les identifier par leur numéro vous pouvez simplement utiliser la commande « jobs » qui va lister les processus par numero et par nom. :D
Autre note, si vous lancez un processus et que vous voulez le détacher complètement de votre tty (console/terminal) il y a l’instruction « disown » propre à BASH.
En gros, vous lancez votre process en arrière-plan :
[bash]./mon_script_ou_programme.sh param1 param2 &[/bash]
Votre processus passe en arrière plan et son PID s’affiche (comme dans la liste des jobs). Il vous suffit donc de taper :
[bash]disown xxxx[/bash]
(où xxxx est le PID de votre processus).
Voilà, vous avez lâché un programme dans le cyber espace de votre système, en toute autonomie. Si vous fermez votre terminal le programme continuera à s’exécuter. Youpiii… ou pas.
Si par erreur vous voulez vite l’arrêter car vous avez oublié un truc :
[bash]ps aux|grep mon_script_ou_programme.sh[/bash]
Et vous récupérez le PID xxx, à tuer avec un petit :
[bash]kill -9 xxx[/bash]
Fin du programme :D
Salut ! Je sais que ce billet date un peu, mais je me permet tout de même d’intervenir, et ce sur deux points :
1 – Pour surveiller le système et donc les logs, il est nécessaire d’appartenir au groupe adm ( « adm : Le groupe adm est utilisé pour les tâches de surveillance du système. » ). Ainsi un petit « adduser adm » permet un a utilisateur lambda l’accès (en lecture) aux logs du système, et évites par conséquent d’avoir à se logger en super-user.
2 – J’utilise personnelement deux programmes : screen ( pas nécessaire d’être présenté je pense ) et multitail ( nom suffisament évocateur ? ). Multitails permet, au sein d’un(e) seul(e) terminal / console d’afficher plusieur logs, de la même façon que « tail -f /var/log/syslog » ( par exemple ).
Sources :
– http://www.debian.org/doc/manuals/securing-debian-howto/ch11.fr.html ( section 11.1.12 pour les groupes )
– http://www.vanheusden.com/multitail/
Voili voilou, c’est tout pour moi.
Bonne continuation ;)
You can checkout dbitail.
A Java tool I created, able to read local and distant log files using SSH. It is fairly simple to use.
Some more explanations: https://github.com/pschweitz/DBITail/wiki
Just download version corresponding to your operating system, of native jar release executable within your Java Runtime (requires java 8_40 or higher):
https://github.com/pschweitz/DBITail/releases
You can find a complete documentation (embedded with and I Github’s page as well)
Philippe
Merci pour ces différents conseils, je me suis empressé de mettre cette page en favoris car je dois malgré tout souvent faire appel à ces commandes et j’ai du mal à m’en souvenir à chaque fois …
Alors cette petite page sur tail ne va pas me faire de mal :D