我总是运行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
这基本上工作,但我关心当tail和date输出同时产生输出时会发生什么。 我不希望我的日志视图被回车弄坏。
我将如何将这些输出复用到一起以便它们不会相撞? 这是一个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,文字换行选项,文件名监视(对日志文件有用),等等。
哦,还有状态线上的一个时钟。