我正在使用 RHEL 4。
tail -F file_name*.log
当时间翻转到 0000 时,法线不会更新。
这是我到目前为止在网上搜索的尝试,两者都尝试使用嵌套tail
:
tail -F $(ls -tr file_name*.log | tail -n 1)
tail -F $(fine . -maxdepth 1 -type f -printf "%T@ %p\n" | sort -n | tail n 1 | cut -d' ' -f 2-)
这些都不会翻转到新文件。普通的旧tail -F file_name*.log
方法在我的小测试用例中有效(而上面的 2 个则无效),但当我跟踪真实的日志文件时它不起作用。
答案1
tail
监视单个文件,或最多监视启动时确定的一组文件。在命令中tail -F file_name*.log
,首先 shell 扩展通配符模式,然后tail
在当时存在的任何文件上调用。
要监视基于通配符的一组文件,您可以使用多尾。
multitail -iw 'file_name*.log' 1
答案2
这不会(不能)工作 - 您用来确定最新文件的子 shell 只会执行一次。 glob 不起作用,因为 shell 仅对通配符求值一次。
处理这个问题的一种方法是使用“watch”来运行整个过程,但这会每隔很多秒就破坏输出。
答案3
您可能必须写一些东西来跟踪尾部。或者将您的系统配置为不在午夜滚动日志(或该日志)。无论哪种方式,尾部日志文件的文件句柄都会在滚动时重置。