En tant qu’utilisateurs de Linux, nous travaillons souvent avec des processus Linux d’arrière-plan de longue durée, appelés démons ou services. Certains des exemples courants de services sont Secure Shell (sshd), Network Manager (networkd), Volume Manager (LVM), Cron, et la liste continue.

Plusieurs fois, nous devons surveiller les journaux de ces services pour déboguer les problèmes du système. Cependant, l’un des principaux défis est que ces services génèrent beaucoup de journaux et la plupart du temps, parcourir ces journaux rend cela fastidieux, c’est là que nous pouvons utiliser le commande de queue.

La commande tail est un utilitaire de ligne de commande, similaire à la commande head qui lit un fichier et imprime les 10 dernières lignes (contenu) d’un ou plusieurs fichiers sur la sortie standard.

Dans ce guide pratique, nous allons découvrir la commande tail. À la fin de ce guide, les utilisateurs de la ligne de commande Linux seront en mesure d’utiliser efficacement la commande tail.

Syntaxe de la commande tail

La syntaxe de la queue est similaire aux autres commandes Linux :

Publicité
$ tail [OPTIONS] [FILE-1] [FILE-2] ...

1. Imprimer les 10 dernières lignes du fichier sous Linux

Par défaut, le queue la commande imprime le dernier dix lignes du fichier donné comme indiqué.

$ tail /var/log/secure

Apr  2 14:17:24 TecMint sshd[201178]: Disconnected from user tecmint 192.168.0.162 port 59774
Apr  2 14:17:24 TecMint sshd[201165]: pam_unix(sshd:session): session closed for user tecmint
Apr  2 14:29:12 TecMint sshd[201366]: Accepted password for tecmint from 192.168.0.162 port 56378 ssh2
Apr  2 14:29:12 TecMint systemd[201371]: pam_unix(systemd-user:session): session opened for user tecmint(uid=1002) by (uid=0)
Apr  2 14:29:12 TecMint sshd[201366]: pam_unix(sshd:session): session opened for user tecmint(uid=1002) by (uid=0)
Apr  2 14:29:12 TecMint sshd[201382]: Received disconnect from 192.168.0.162 port 56378:11: disconnected by user
Apr  2 14:29:12 TecMint sshd[201382]: Disconnected from user tecmint 192.168.0.162 port 56378
Apr  2 14:29:12 TecMint sshd[201366]: pam_unix(sshd:session): session closed for user tecmint
Apr  2 15:12:55 TecMint sshd[202049]: Accepted password for root from 192.168.0.162 port 53334 ssh2
Apr  2 15:12:55 TecMint sshd[202049]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)

Ici, nous pouvons voir que la commande ci-dessus affiche les dix dernières lignes de la /var/log/sécurisé déposer.

2. Imprimer les N dernières lignes du fichier sous Linux

Dans le dernier exemple, la commande imprime les 10 dernières lignes du fichier donné. Cependant, nous pouvons utiliser le -n option qui nous permet de limiter le nombre de lignes à imprimer sur l’écran comme indiqué.

$ tail -n 3 /var/log/secure

Apr  2 14:29:12 TecMint sshd[201366]: pam_unix(sshd:session): session closed for user tecmint
Apr  2 15:12:55 TecMint sshd[202049]: Accepted password for root from 192.168.0.162 port 53334 ssh2
Apr  2 15:12:55 TecMint sshd[202049]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)

Dans cet exemple, nous pouvons voir que maintenant la commande affiche uniquement les trois dernières lignes au lieu des dix lignes.

3. Ignorer les N premières lignes d’un fichier sous Linux

Ici, nous pouvons utiliser le plus (+) symbole avec le -n option, qui nous permet de contrôler le point de départ à partir du fichier donné.

Pour comprendre cela, utilisons le +5 valeur pour démarrer la sortie à partir de la 5ème ligne :

$ tail -n +5 /var/log/secure

Apr  2 14:17:24 TecMint sshd[201178]: Disconnected from user tecmint 192.168.0.162 port 59774
Apr  2 14:17:24 TecMint sshd[201165]: pam_unix(sshd:session): session closed for user tecmint
Apr  2 14:29:12 TecMint sshd[201366]: Accepted password for tecmint from 192.168.0.162 port 56378 ssh2
Apr  2 14:29:12 TecMint systemd[201371]: pam_unix(systemd-user:session): session opened for user tecmint(uid=1002) by (uid=0)
Apr  2 14:29:12 TecMint sshd[201366]: pam_unix(sshd:session): session opened for user tecmint(uid=1002) by (uid=0)
Apr  2 14:29:12 TecMint sshd[201382]: Received disconnect from 192.168.0.162 port 56378:11: disconnected by user
Apr  2 14:29:12 TecMint sshd[201382]: Disconnected from user tecmint 192.168.0.162 port 56378
Apr  2 14:29:12 TecMint sshd[201366]: pam_unix(sshd:session): session closed for user tecmint
Apr  2 15:12:55 TecMint sshd[202049]: Accepted password for root from 192.168.0.162 port 53334 ssh2
Apr  2 15:12:55 TecMint sshd[202049]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)

4. Afficher les N derniers caractères du fichier

Semblable aux lignes, nous pouvons également utiliser la commande pour afficher le dernier N caractères du fichier à l’aide de -c comme indiqué ci-dessous :

$ tail -c 7 /var/log/secure

(uid=0)

Dans cet exemple, nous pouvons voir que la commande affiche les sept derniers ASCII caractères du fichier donné.

5. Supprimer les N premiers caractères du fichier

De même, nous pouvons utiliser le symbole plus (+) avec le -c possibilité de sauter le premier N personnage. Passons donc la première ligne du fichier en utilisant la commande ci-dessous :

$ tail -c +5 /var/log/secure

Apr  2 03:02:59 TecMint sudo[162801]: root : TTY=pts/2 ; PWD=/root ; USER=root ; COMMAND=/bin/dnf install R
Apr  2 03:02:59 TecMint sudo[162801]: pam_unix(sudo:session): session opened for user root(uid=0) by root(uid=0)
Apr  2 03:03:02 TecMint sudo[162801]: pam_unix(sudo:session): session closed for user root
Apr  2 03:11:17 TecMint groupadd[163602]: group added to /etc/group: name=avahi, GID=70
Apr  2 03:11:18 TecMint groupadd[163602]: group added to /etc/gshadow: name=avahi
Apr  2 03:11:18 TecMint groupadd[163602]: new group: name=avahi, GID=70
Apr  2 03:11:19 TecMint useradd[163610]: new user: name=avahi, UID=70, GID=70, home=/var/run/avahi-daemon, shell=/sbin/nologin, from=none
Apr  2 03:13:41 TecMint groupadd[163704]: group added to /etc/group: name=colord, GID=986
Apr  2 03:13:41 TecMint groupadd[163704]: group added to /etc/gshadow: name=colord

Ici, nous pouvons voir que la commande affiche toutes les lignes sauf la première ligne.

6. Afficher le nom du fichier dans l’en-tête

Nous pouvons instruire le queue commande pour afficher le nom du fichier actuel en tant qu’en-tête d’affichage, ce qui est pratique lorsque vous travaillez avec plusieurs fichiers.

Alors, utilisons le -v option pour activer l’en-tête d’affichage :

$ tail -n 3 -v /var/log/secure

==>/var/log/secure 

Dans la sortie ci-dessus, ==> /var/log/secure représente l’en-tête d’affichage.

7. Afficher le nom du fichier comme en-tête dans plusieurs fichiers

Comme toute autre commande de traitement de fichiers, nous pouvons également utiliser plusieurs fichiers avec le queue commande. Dans de tels cas, l’en-tête d’affichage est utilisé pour séparer le contenu du fichier.

$ tail -n 3 -v /var/log/secure /var/log/secure-20230402

==> /var/log/secure  /var/log/secure-20230402 

Dans la sortie ci-dessus, nous pouvons voir l’en-tête d’affichage pour chaque fichier.

8. Comment désactiver l’en-tête d’affichage dans le fichier

Dans l’exemple précédent, nous avons vu que la commande active l’en-tête d’affichage lorsque vous travaillez avec plusieurs fichiers. Cependant, nous pouvons supprimer ce comportement par défaut en utilisant le -q option.

$ tail -q -n 3 /var/log/secure /var/log/secure-20230402

Apr  2 14:29:12 TecMint sshd[201366]: pam_unix(sshd:session): session closed for user tecmint
Apr  2 15:12:55 TecMint sshd[202049]: Accepted password for root from 192.168.0.162 port 53334 ssh2
Apr  2 15:12:55 TecMint sshd[202049]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)
Mar 31 03:50:53 TecMint groupadd[156163]: new group: name=docker, GID=987
Mar 31 04:46:11 TecMint sshd[159403]: Accepted password for root from 192.168.0.162 port 46480 ssh2
Mar 31 04:46:11 TecMint sshd[159403]: pam_unix(sshd:session): session opened for user root(uid=0) by (uid=0)

Ici, nous pouvons voir que maintenant la commande affiche le contenu du fichier l’un après l’autre sans aucun en-tête d’affichage.

9. Comment surveiller un fichier pour les modifications

Jusqu’à présent, nous avons vu que la commande tail se termine une fois qu’elle a traité le nombre requis de lignes ou de caractères. Cependant, nous souhaitons parfois également afficher les journaux nouvellement générés.

Dans de tels cas, nous pouvons utiliser le -f option avec la commande, qui nous permet de surveiller le fichier pour les changements en temps réel.

Pour comprendre cela, exécutons d’abord la commande ci-dessous dans le premier terminal :

$ tail -f /var/log/messages

Apr  2 15:13:28 TecMint NetworkManager[741]:   [1680462808.8441] policy: set-hostname: current hostname was changed outside NetworkManager: 'TecMint'
Apr  2 15:13:28 TecMint systemd[1]: Starting Network Manager Script Dispatcher Service...
Apr  2 15:13:28 TecMint systemd[1]: Started Network Manager Script Dispatcher Service.
Apr  2 15:13:37 TecMint arpwatch[11001]: rename arp.dat -> arp.dat-: Operation not permitted
Apr  2 15:13:38 TecMint systemd[1]: NetworkManager-dispatcher.service: Deactivated successfully.
Apr  2 15:13:58 TecMint systemd[1]: systemd-hostnamed.service: Deactivated successfully.
Apr  2 15:18:03 TecMint systemd[1]: Starting dnf makecache...
Apr  2 15:18:03 TecMint dnf[202235]: Metadata cache refreshed recently.
Apr  2 15:18:03 TecMint systemd[1]: dnf-makecache.service: Deactivated successfully.
Apr  2 15:18:03 TecMint systemd[1]: Finished dnf makecache.

Ici, on peut voir que la commande attend infiniment après avoir affiché les dix dernières lignes :

Ensuite, ouvrons un autre terminal et ajoutons du texte au numéros-2.txt déposer:

$ echo "View Logs in Real-Time" >> /var/log/messages

Passons maintenant au premier terminal pour afficher le texte nouvellement ajouté :

$ tail -f /var/log/messages

Apr  2 15:13:28 TecMint NetworkManager[741]:   [1680462808.8441] policy: set-hostname: current hostname was changed outside NetworkManager: 'TecMint'
Apr  2 15:13:28 TecMint systemd[1]: Starting Network Manager Script Dispatcher Service...
Apr  2 15:13:28 TecMint systemd[1]: Started Network Manager Script Dispatcher Service.
Apr  2 15:13:37 TecMint arpwatch[11001]: rename arp.dat -> arp.dat-: Operation not permitted
Apr  2 15:13:38 TecMint systemd[1]: NetworkManager-dispatcher.service: Deactivated successfully.
Apr  2 15:13:58 TecMint systemd[1]: systemd-hostnamed.service: Deactivated successfully.
Apr  2 15:18:03 TecMint systemd[1]: Starting dnf makecache...
Apr  2 15:18:03 TecMint dnf[202235]: Metadata cache refreshed recently.
Apr  2 15:18:03 TecMint systemd[1]: dnf-makecache.service: Deactivated successfully.
Apr  2 15:18:03 TecMint systemd[1]: Finished dnf makecache.
View Logs in Real-Time

Ici, nous pouvons voir que la commande tail affiche le texte nouvellement ajouté.

Connaissez-vous un autre meilleur exemple de la commande tail sous Linux ? Faites-nous part de vos opinions dans les commentaires ci-dessous.

Si vous appréciez ce que nous faisons ici sur TecMint, vous devriez considérer :

TecMint est le site communautaire à la croissance la plus rapide et le plus fiable pour tout type d’articles, de guides et de livres Linux sur le Web. Des millions de personnes visitent TecMint ! pour rechercher ou parcourir les milliers d’articles publiés accessibles GRATUITEMENT à tous.

Si vous aimez ce que vous lisez, pensez à nous acheter un café (ou 2) en signe d’appréciation.

Soutenez-Nous

Nous sommes reconnaissants pour votre soutien sans fin.

Rate this post
Publicité
Article précédentHelen Flanagan fait un cauchemar de vacances à l’aéroport alors que son fils fait une crise de colère
Article suivantUn fan de Chief Keef rappe les paroles de Keef pendant son arrestation – Regardez
Avatar
Violette Laurent est une blogueuse tech nantaise diplômée en communication de masse et douée pour l'écriture. Elle est la rédactrice en chef de fr.techtribune.net. Les sujets de prédilection de Violette sont la technologie et la cryptographie. Elle est également une grande fan d'Anime et de Manga.

LAISSER UN COMMENTAIRE

S'il vous plaît entrez votre commentaire!
S'il vous plaît entrez votre nom ici