如何仅监控日志文件的最后 n 行?

如何仅监控日志文件的最后 n 行?

我有一个不断增长的日志文件,我想显示它仅有的最后 15 行。这是我知道我能做的:

tail -n 15 -F mylogfile.txt

当日志文件填满时,tail将最后几行附加到显示中。

我正在寻找一种解决方案,仅显示最后 15 行,并在更新后删除最后 15 行之前的行。你有什么想法吗?

答案1

使用手表可能就足够了:

$ watch tail -n 15 mylogfile.txt

答案2

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

因此,下面每 2 秒调用一次 tail

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

而这个每 1 秒轮询一次

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

答案3

您可以运行 less 来流式传输日志文件,然后按 SHIFT + F 将使用 less 流式传输文件。 $ less mylogfile.txt 然后只需按 SHIFT + F 即可进行流式传输。我认为监视更新的日志文件很方便。

答案4

在 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

相关内容