J'ai un fichier journal en pleine croissance pour lequel je veux afficher niquement les 15 dernières lignes. Voici ce que je sais que je peux faire:
tail -n 15 -F mylogfile.txt
Lorsque le fichier journal est rempli, tail
ajoute les dernières lignes à l'affichage.
Je cherche une solution qui n'affiche que les 15 dernières lignes et se débarrasse des lignes avant les 15 dernières après sa mise à jour. Auriez-vous une idée?
Il pourrait suffire d'utiliser la montre:
$ watch tail -n 15 mylogfile.txt
Si vous utilisez la montre, essayez le -n
option pour contrôler l'intervalle entre chaque mise à jour.
Ainsi, ce qui suit appelle la queue toutes les 2 secondes
$ watch -n 2 tail -n 15 mylogfile.txt
tandis que celui-ci l'interroge toutes les 1 seconde
$ watch -n 1 tail -n 15 mylogfile.txt
Vous pouvez diffuser le fichier journal en exécutant moins et en appuyant sur MAJ + F qui diffusera le fichier en utilisant moins. $ less mylogfile.txt
Ensuite, appuyez simplement sur MAJ + F et il sera diffusé. Je pense que c'est pratique pour surveiller les fichiers journaux qui se mettent à jour.
Vous trouvez peut-être le -d
param à portée de main.
man watch
-d Mettez en évidence les différences entre les mises à jour successives. Option lira l'argument optionnel selon lequel les changements sont mis en évidence pour être permanents, permettant de voir ce qui a changé au moins une fois depuis la première itération.
Sous Solaris, AIX ou HPUX ou de type UNIX (y compris Linux), vous pouvez utiliser des scripts pour surveiller les journaux ou quelque chose comme ça:
while true;
clear;
do date;
echo ;
echo "MONITORING LOG IN "/path/to/file.log": ";
echo "Obs.: Last 20 lines of a logfile:
echo ;
tail -20 /path/to/file.log;
echo ;
sleep 5;
done