Vous avez besoin tail --follow=name /var/log/syslog
La raison en est que, par défaut, supposément pour des raisons de performances, tail
ouvre le fichier spécifié, puis regarde le descripteur de fichier il obtient
à partir de ce open(2)
appeler pour des changements.
Cela fonctionne tant que le fichier est modifié - ajouté ou même réécrit (en le tronquant d’abord), mais il cesse de fonctionner si le fichier est remplacé —C'est, supprimé et créé avec le même nom, et c'est ce que logrotate
fait généralement.
Le mode "nom" de --follow
fait du tail
utiliser un plus coûteux stat(2)
appel système qui "résout" réellement le nom du fichier à chaque fois via la couche système de fichiers, et si tail
remarque le fichier a changé son soi-disant "inode" , tail
rouvre le fichier.
La sortie de man tail
:
-f, --follow[={name|descriptor}]
afficher les données ajoutées à mesure que le fichier s'agrandit;
un argument d'option absent signifie 'descripteur'
Vous pouvez aussi regarder le -F
option de ligne de commande, définie comme
-F
pareil que --follow=name --retry