Certains journaux sont générés à l'aide d'un enregistreur de fichiers rotatif chronométré. Cela enregistre dans un fichier appelé tool.log
, et à minuit, déplace ceci vers tool.log.<date>
et commence un nouveau tool.log
.
J'ai un tail -f tool.log
en cours d'exécution sur la machine pour surveiller les journaux, mais à minuit, lorsque tool.log
est renommé en tool.log.<date>
, tail
continue de regarder le fichier renommé.
Ce que j'espère, c'est un outil similaire à tail
, mais qui continuera à surveiller le fichier nommé tool.log
, plutôt que de suivre l'inode.
Est-ce que quelque chose comme ça existe? Sinon, je peux écrire le mien en Python à cette fin.
Certaines implémentations de tail
ont une option pour cela; voici la description de la page de manuel de GNU tail:
-F
identique à--follow=name --retry
-f
,--follow
[=
{ nom | descripteur }]
affiche les données ajoutées à mesure que le fichier s'agrandit;-f
,--follow
et--follow=descriptor
sont équivalents
--retry
continue d’essayer d’ouvrir un fichier même s’il est ou devient inaccessible; utile lorsque vous suivez par nom, c'est-à-dire avec--follow=name
Comme cette option n'est pas spécifiée par POSIX, vous ne pouvez pas en dépendre partout. Quelques implémentations connues:
-F
comme décrit ci-dessus-F
similaire avec le même effet-f
suffit (si le fichier est remplacé (c'est-à-dire que le numéro d'inode change), tail va rouvrir le fichier et continuer)-F
est disponible dans les versions récentes, mais doit être compilé avec ENABLE_FEATURE_FANCY_TAIL
(il n'est pas compilé- par défaut)L'alternative est la commande tail -F
.
L'option -F
implique --follow=name
avec l'option --retry
, donc tail surveille votre fichier, même s'il a été supprimé et créé à nouveau.
Depuis que vous avez demandé alternative:
L'utilitaire less
pourrait constituer une alternative à tail -F
.
Il devra être exécuté comme suit: less --follow-name filename.log
et appuyez sur Shift + F.
Cela vous donnera les mêmes résultats que tail -F
.
Une autre alternative serait d'utiliser la commande watch
name__, qui répétera n'importe quelle commande toutes les n secondes, toutes les 2 secondes dans cet exemple:
watch -n2 "tail tool.log"
Utilisation Ctrl+C pour quitter la commande lorsque vous avez terminé de consulter le journal.
LNav est un autre outil fantastique qui suit le nom du fichier.
Vous pouvez également le pointer vers un répertoire et tous les fichiers de ce répertoire seront ajoutés à la liste, en plus de toutes sortes d’autres fonctionnalités intéressantes.
Je ne sais pas si multitail
traitera votre cas particulier, mais je parie que c'est le cas. multitail fait à peu près tout ce que vous voudriez que tail
fasse.