下午好。由于许多脚本在不同时间运行,因此我有一整天都会填充的日志文件。它不是一个巨大的文件,但一个问题是日志条目没有时间戳进入时间。
在这种情况下,我通常通过PuTTY会话登录服务器并在该日志文件上运行tail -f,这样我就可以看到这些脚本正在开始。我想做的是改变我的tail -f以包含显示在屏幕上的每个项目的时间戳。我使用了以下内容:
tail -f scheduler _ date '+%m%d%y'
。log | sed s / ^ / $(日期+%H:%M%_ *)/
这里的问题是它使用tail命令的时间戳,而不是每行输入日志文件的时间。
我已经回顾了其他几个案例,包括下面的案例,但我发现没有一个案例正是我正在寻找的。任何帮助,将不胜感激。
答案 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