How can I use tail utility to view a log file that is frequently recreated

gfunk picture gfunk · Jul 26, 2011 · Viewed 13.4k times · Source

I need a solution in creating a script to tail a log file that is recreated (with the same name) after it reaches a certain size.

Using "tail -f" causes the tailing to stop when the file is recreated/rotated.

What I would like to do is create a script that would tail the file and after it reaches 100 lines for example, then restart the command... Or even better to restart the command when the file is recreated?

Is it possible?

Answer

evan picture evan · Jul 26, 2011

Yes! Use this (the retry will make tail retry when the file doesn't exist or is otherwise inaccessible rather than just failing - such as potentially when you are changing files):

tail -f --retry <filename>

OR

tail --follow=name --retry

OR

tail -F <filename>