"Tail -f" affiche l'ancien file après la rotation du file

J'ai un script en cours d'exécution, lisant la tail -f /var/log/daemon.log

Le problème est que, lorsque le file /var/log/daemon.log est pivoté par logrotate , la queue a toujours "handle de file" pour l'ancien file (pivoté) et n'affiche plus le contenu du nouveau /var/log/daemon.log file /var/log/daemon.log

Y at-il un moyen de résoudre ce problème, de sorte que la tail montre le contenu du nouveau file, si le file a été pivoté?

Oui. Vous cherchez la tail -F au lieu de la tail -f (c'est-à-dire un F majuscule au lieu de minuscules). Vérifiez la page de manuel de la queue (1).

Vous pouvez également utiliser --follow=name --retry , que la page de manuel documente comme la même chose.

(Ce sont de la queue de GNU coreutils, d'autres queues peuvent ne pas avoir cela, POSIX ne spécifie pas -F , --follow , ou --retry .) Si vous devez travailler sur ces systèmes, je suggère File :: Tail de Perl. )