tail -f日志文件时间戳

时间:2017-03-31 21:21:17

标签: timestamp tail logfile

下午好。由于许多脚本在不同时间运行,因此我有一整天都会填充的日志文件。它不是一个巨大的文件,但一个问题是日志条目没有时间戳进入时间。

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

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

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

我已经回顾了其他几个案例,包括下面的案例,但我发现没有一个案例正是我正在寻找的。任何帮助,将不胜感激。

How to pipe tail -f into awk

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

1 个答案:

答案 0 :(得分:1)

qx

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

我假设你命令中的最后一个%T是一个拼写错误,应该用秒替换,所以我写了%H:%M:%S,这是tail ... | perl -pe 'BEGIN { use POSIX "strftime" } s/^/strftime "%T_", localtime/e' 的缩写。

如果性能很重要,那么每行不需要新的日期流程:

client.example.com