在journalctl中如何转到文件末尾?

在journalctl中如何转到文件末尾?

如果我输入,sudo journalctl我会在某种阅读器中获取系统日志。按 j 和 k 的工作方式与 Vi 中类似,但 G 不会转到文件末尾。事实上,如果按 G,流就会冻结,我已经强行终止它。

Journalctl 的手册页中没有提及使用阅读器。

答案1

那个“读者”只是less

Journalctl 的手册页中没有提及使用阅读器。

错误,手册页说:

The output is paged through `less` by default,

但:

但 G 不会到达文件末尾。事实上,如果按 G,流就会冻结,我已经强行终止它。

G 工作得很好,日志很长,所以它会搜索很长时间直到到达末尾。

从手册页:

  -e, --pager-end
      Immediately jump to the end of the journal inside the implied pager 
      tool. This implies -n1000 to guarantee that the pager will not buffer 
      logs of unbounded size. This may be overridden with an explicit -n 
      with some other numeric value, while -nall will disable this cap. 
      Note that this option is only supported for the less(1) pager.

所以,

journalctl -e

就是你想跑的!

答案2

添加到@Marcus Müller 的出色回答:

# show only the last 1000 lines of the systemd journal (`-n 1000` is implied),
# jumping straight to the end (`-e`)
journalctl -e

# same as above
journalctl -n 1000 -e

# same as above, except show the last 10000 lines instead of 1000 lines
journalctl -n 10000 -e

您可以通过计算行数来证明这是有效的。运行并输出:

$ journalctl -n 10000 -e | wc -l
10020

这比直接运行要快得多journalctl,因为我的日志太长了,否则需要整整一分钟才能读完。

相关内容