如何结合实时时钟与尾巴-F

我总是运行tail -F来留意terminal窗口中的日志。 日志在每个条目的开头都有一个UTCdate:

 [08-Jan-2013 16:24:22] Yo! 

当我浏览我的日志窗口时,我需要知道条目有多大。 我宁愿不必看我的本地时钟,并做math。 所以我觉得在窗口中显示实时时钟以及tail输出会很酷。

我想到的是后面的一个while循环echo date和回车。 当写入日志条目时, tail覆盖时钟。

 while true; do echo -ne `date +"[%d-%b-%Y %H:%M:%S]"`"\r"; sleep 1; done & log -F /path/to/log 

这基本上工作,但我关心当taildate输出同时产生输出时会发生什么。 我不希望我的日志视图被回车弄坏。

我将如何将这些输出复用到一起以便它们不会相撞? 这是一个screen或其他东西的工作?

日志在远程Debian服务器上。 我的工作站运行OSX。 我通过SSH连接运行上面的脚本。

你可以使用tail的-s选项,让你的尾巴睡5秒钟:

 -s, --sleep-interval=S with -f, sleep for approximately S seconds (default 1.0) between iterations. tail -s 5 -f /var/log/messages 

或者watch命令会显示date:

 watch --interval=5 tail /var/log/messages Every 5.0s: tail /var/log/messages Tue Jan 8 17:52:41 2013 

Jan 8 17:52:34 localhost kernel NEW:IN = eth0 OUT = MAC = 00:60:56:73:14:6b:00:50:5b:93:49:5d:08:00 SRC = 10.0。 0.2 DST = 10.0.0.1 LEN = 60 TOS = 0x00 PREC = 0x00 TTL = 64 ID = 29070 DF PROTO = TCP SPT = 50561 DPT = 25 WINDOW = 5840 RES = 0x00 SYN URGP = 0

另一个(不是特别好)使用strace -t命令的解决scheme:

  strace -t tail -f /var/log/messages 

最后,你可以在python / perl / ruby​​中编写你自己修改后的tail命令:

https://stackoverflow.com/questions/136168/get-last-n-lines-of-a-file-with-python-similar-to-tail

只需将date/时间读取添加到输出行。

你可能想看看multitail ; 它支持多个独立或合并日志文件,基于正则expression式的着色每个文件types,文字换行选项,文件名监视(对日志文件有用),等等。

哦,还有状态线上的一个时钟。