tail -f 日志文件时间戳

tail -f log file timestamp

下午好。我有一个日志文件,它在一天中的不同时间以许多脚本 运行 的形式填充。这不是一个大文件,但一个问题是日志条目没有输入时间的时间戳。

在这种情况下,我通常通过 PuTTY 会话和 运行 该日志文件上的 tail -f 登录到服务器,这样我就可以看到那些脚本正在开始。我想做的是改变我的 tail -f 以包含显示在屏幕上的每个项目的时间戳。我使用了以下内容:

tail -f scheduler_date '+%m%d%y'.log | sed s/^/$(日期 +%H:%M%_*)/

这里的问题是它使用的是tail命令的时间戳,而不是每一行进入日志文件的时间。

我查看了其他一些案例以包括以下案例,但我发现 none 正好提供了我正在寻找的内容。任何帮助,将不胜感激。

How to pipe tail -f into awk

https://users.cs.cf.ac.uk/Dave.Marshall/PERL/node241.html

tail -f "scheduler_$(date '+%m%d%y').log" | perl -pe 's/^/$_=qx(date +%T_); chomp; $_/e'

qx 调用外部 date +%T_ 命令。它的输出存储在变量 $_ 中。 chomp$_ 中删除尾随换行符。然后返回$_成为替换。

我假设你命令中的最后一个 % 是一个错字,应该用秒替换,所以我写了 %T,这是 %H:%M:%S 的缩写。

如果性能很重要,您可以像这样在每行中不使用新的日期处理:

tail ... | perl -pe 'BEGIN { use POSIX "strftime" } s/^/strftime "%T_", localtime/e'