仅查看不断增长的日志文件中的新条目


20
tail -f x.log

我使用此命令在命令提示符下查看不断增长的日志文件。

我只对运行后看到写入文件的日志行tail -f感兴趣,而对在执行之前写入文件的日志不感兴趣tail -f。但是tail -f在启动时执行命令,将最后10行显示出来。

这使我感到困惑,有时这些日志是新生成的(或)它们是旧日志吗?

因此,我如何自定义tail -f仅输出新条目?

logs  tail 

Answers:


31

你可以试试:

tail -n0 -f x.log

手册页

-n,--lines = K
输出最后K行,而不是最后10行;或使用-n + K输出以Kth开头的行



2

您也可以使用less类似的命令

  1. less file_name.log (将打开日志文件,并显示日志文件的第一页)
  2. shift+ f(作用与尾-f相同)
  3. 如果您需要在日志文件中搜索任何关键字。按ctrl+ c退出尾部模式并搜索作为/关键字和?关键字的关键字。

这不会查看不断增长的日志文件中的新条目
诡异的

0

我不得不监视Docker容器中的条目时创建了这种方法:

LOG_COUNT=0
LOGS=/var/logs/your_logs

function HEART_BEAT() {
    LOG_COUNT_NEW=$(wc -l $LOGS | awk '{ print $1 }')
    tail -n $(( $LOG_COUNT_NEW - $LOG_COUNT )) $LOGS
    LOG_COUNT=$LOG_COUNT_NEW
}

希望这可以帮助!

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.