我的日志文件越来越大,我只想显示最后15行。这是我知道可以执行的操作:

tail -n 15 -F mylogfile.txt


当日志文件已满时,tail将最后一行附加到显示。我正在寻找一种仅显示最后15行并在更新后摆脱最后15行之前的行的解决方案。你有个主意吗?

评论

将终端窗口的大小调整为15行。

那也是一个好人。

@Jonathan genius!

无法投票支持jonathan的评论,否则会失去15次投票的味道

#1 楼

可能足以使用手表:

$ watch tail -n 15 mylogfile.txt


评论


大!非常感谢。在此过程中,我还将学习“监视”命令。

– Marc-Olivier Titeux
2012年1月19日,12:41

请注意,如果文件在两次手表更新之间的增长量超过15行,则此解决方案将无法使用。您可以使用-n更改此间隔。

–bfontaine
16年8月5日在10:00

#2 楼

如果您使用手表,请尝试使用-n选项控制每次更新之间的间隔。

,因此,以下内容将每2秒调用一次tail
$ watch -n 2 tail -n 15 mylogfile.txt


,而此轮询每1秒轮询一次

$ watch -n 1 tail -n 15 mylogfile.txt


#3 楼

您可以流式传输运行较少的日志文件,然后按SHIFT + F,将使用较少的流式传输文件。我认为监视更新的日志文件很方便。

评论


那真是太好了!

– kaiser
16 Mar 10 '16 at 15:21



#4 楼

也许您发现-d参数很方便。

man watch



-d
突出显示连续更新之间的差异。 Option将读取可选参数,该参数将突出显示为永久性
,从而允许查看自第一次
迭代以来至少发生了什么更改。

评论


太好了!

– Marc-Olivier Titeux
13年5月28日在19:03

#5 楼

在Solaris,AIX或HPUX或类UNIX(包括Linux)中,您可以使用脚本来监视日志或类似的内容:

while true; 
    clear; 
    do date; 
    echo ;
    echo "MONITORING LOG IN "/path/to/file.log": "; 
    echo "Obs.: Last 20 lines of a logfile:
    echo ;
    tail -20 /path/to/file.log;
    echo ;
sleep 5; 
done