我有一个脚本连续运行,读取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 的文件::尾巴.)