我使用systemctl status service-name检查服务状态。

默认情况下,我仅看到几行,因此我添加-n50以查看更多行。有时,我想查看完整的日志,从开始。它可能有成千上万的行。
现在,我用-n10000对其进行检查,但这看起来不像是一种整洁的解决方案。

是否可以选择类似于less命令的完整systemd服务日志?

评论

尽管接受的答案对我没有用,但我不知道-n标志。添加-n99999对我来说似乎是可以接受的解决方法。感谢您指出正确的方向:-)

#1 楼

只需使用journalctl命令,如下所示:

journalctl -u service-name.service


或者,仅查看当前引导的日志消息:

journalctl -u service-name.service -b


对于名为<something>.service的东西,您实际上可以只使用<something>,例如:

journalctl -u service-name


但是对于其他类型的单元(插座,目标,计时器,等),则需要明确。

在上述命令中,-u标志是--unit的缩写,它指定感兴趣的单元的名称。 -b--boot的缩写,并且将输出限制为仅当前引导,这样您就不会看到很多较旧的消息。有关更多信息,请参见journalctl手册页。

评论


附加--no-pager将打印完整日志,因此您无需滚动

– Dushyant Bangal
17年5月29日在11:41

附加-e将在末尾开始日志,无需滚动,但无需事先打印整个日志。

–timlyo
17年7月28日在14:45

附加-f将跟随(打印)更新到日志

–乔J
2017年9月6日17:10



附加--help将使您看到所有可用选项

– Tzafrir
18 Mar 26 '18在20:14

这些日志存储在磁盘上的某个位置吗?

–viveksinghggits
19年4月11日在10:09

#2 楼

通过添加systemctl标志,-l可以包含其状态列表的完整输出,而不会被截断。

systemctl -l status service-name


-l:不要用省略号(..截断条目。 。)

可以添加--no-pager以避免在输出是交互式终端时调用寻呼机。

评论


你能以某种方式明确答案吗?添加有关选项的一些解释,不要犹豫来格式化您的答案!

– joH1
18年1月24日在10:20

这个答案是错误的。输出保持截断状态。

– phil294
18-10-30在14:21

#3 楼

使用journalctl查看系统日志

在不使用PagingPermalink的情况下查看journalctl
要将日志发送到标准输出并避免分页,请使用--no-pager选项:

journalctl --no-pager

不建议您先过滤掉显示的日志数。

journalctl -u service-name.service

在一段时间内显示日志RangePermalink
使用-since选项可显示指定日期和时间后的日志:

journalctl --since "2018-08-30 14:10:10"

使用--until选项可显示高达指定的日期和时间:

journalctl --until "2018-09-02 12:05:50"

将它们合并以显示两次之间的日志:

journalctl --since "2018-08-30 14:10:10" --until "2018-09-02 12:05:50"

更多信息

#4 楼

使用journalctl

将日志写入文本文件

自下而上读取

journalctl -u service-name.service > file_name.txt

tail file_name.txt


评论


哪个tail命令支持选项-r,它有什么作用?

– RalfFriedl
19年11月19日在6:29

我最喜欢这个答案。能够快速将实时日志输出到文件,然后我可以通过winscp从Windows框中获取该文件。

–来源事项
9月9日15:58