我有一个文件夹,里面装满了滚动日志文件,我希望能够使用tail命令查看这些文件。
这些文件的命名规则如下:
name modified
00A.txt Dec 27 19:00
00B.txt Dec 27 19:01
00C.txt Dec 27 19:02
00D.txt Dec 27 19:03
在一个较老的Unix系统上,我正在尝试编写一个Shell脚本,以便跟踪特定目录中最近修改的文件,并且如果该文件被管理员关闭(滚动到下一个文件),我希望程序能够自动开始跟踪新文件,而不需要我退出tail命令重新运行。
tail -100f `ls -t | head -1`
给定以上文件名,期望的行为如下:
./logtailer.sh
然后脚本将开始追踪00D.txt。当记录器完成对00D.txt的写入并最新的日志文件现在命名为00E.txt时,程序将自动开始追踪该文件。
可以通过观察tail输出中的文本“文件已被管理员关闭”,然后再运行以下命令来编写此脚本。
tail -100f `ls -t | head -1`
有没有比监听“文件已被管理员关闭”文本更优雅的方法?如何在shell脚本中逐行读取tail的输出?
补充说明:在我的系统上,tail的-F选项不可用。它使用的是不包含此功能的不同版本的tail。 操作系统版本-Solaris 10
tail
和box(Unix / Linux)
的版本信息
,谢谢。 - jaypal singhtail --follow=name
适用于当输入文件被日志轮换脚本截断时,但OP想要在新文件出现时开始读取它。 - tripleeetail -F
选项,它正是这样做的。OP 的 Solaris 系统上没有该选项。 - jaypal singh