用文件名连续拖尾date和时间的日志文件

我有一个格式为log_name_YY-MM-DD_HH_mm.log的日志文件。 日志每隔几个小时旋转一次,并创build包含创builddate和时间的新日志。 有时我需要使用tail -f命令tail -f这个日志的实时输出。 日志旋转后,尾巴仍指向旧的文件名,必须手动重新启动与新的文件名。

有没有办法自动切换tail -f来使用新文件? 在这种情况下, tail -F选项( tail --follow=name --retry )不起作用,因为日志的文件名发生更改。

您可以创build一个脚本来在最新的日志文件在后台拖尾,然后定期检查新的日志文件。 如果有新的日志文件,则杀死旧进程并开始拖尾新文件。

就像是:

 #!/bin/bash PATTERN='log_name_??-??-??_??_??.log' CURRENT=any_pattern # dummy pattern to start off first tail -f while true; do NEWLOG=`ls -t $PATTERN|head -n1` if [[ $NEWLOG != $CURRENT ]] then kill $TAILPID 2>/dev/null CURRENT=$NEWLOG tail -f $CURRENT & TAILPID=$! fi sleep 1 # check regularly done