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
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'
下午好。我有一个日志文件,它在一天中的不同时间以许多脚本 运行 的形式填充。这不是一个大文件,但一个问题是日志条目没有输入时间的时间戳。
在这种情况下,我通常通过 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
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'