systemctl status service-name
检查服务状态。默认情况下,我仅看到几行,因此我添加
-n50
以查看更多行。有时,我想查看完整的日志,从开始。它可能有成千上万的行。现在,我用
-n10000
对其进行检查,但这看起来不像是一种整洁的解决方案。是否可以选择类似于
less
命令的完整systemd服务日志?#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
评论
尽管接受的答案对我没有用,但我不知道-n标志。添加-n99999对我来说似乎是可以接受的解决方法。感谢您指出正确的方向:-)