“tail -f”在文件旋转后显示旧文件

“tail -f”在文件旋转后显示旧文件

我有一个脚本连续运行,读取tail -f /var/log/daemon.log

问题是,当文件/var/log/daemon.log旋转时logrotate,tail 仍然具有旧(旋转)文件的“文件句柄”,并且不再显示新/var/log/daemon.log文件的内容

有没有办法解决这个问题,以便tail在文件被旋转时显示新文件的内容?

答案1

是的。您正在寻找tail -F而不是tail -f(即大写的 F 而不是小写的)。检查 tail(1) 联机帮助页。

或者,您可以使用--follow=name --retry,手册页将其记录为相同的内容。

(这些来自 GNU coreutils tail。其他 tails 可能没有这个;POSIX 没有指定-F--follow--retry。如果你必须在这些系统上工作,我建议 Perl 的文件::尾巴.)

相关内容