系统日志是管理员和开发人员在监控系统性能、解决问题和了解系统内部事件方面的重要资源。在本文中,我们了解了在Linux系统上,
journalctl
命令提供了一种有效的方式来访问和管理这些日志。
简介:journalctl命令
journalctl
命令是一种工具,允许用户查看和交互systemd日志。这些日志来自各种来源,例如内核、initrd、系统服务、应用程序和systemd本身。日志以二进制格式存储,并可以使用journalctl
有效地查询。
journalctl
命令的基本语法如下:
journalctl [options…] [matches…]
使用journalctl查看和过滤日志
最简单的使用journalctl
的方法是不带任何选项。这将按时间顺序显示所有日志记录:
$ journalctl
然而,输出可能会令人不知所措,特别是在运行时间较长的系统上。为了使导航更容易,输出会自动使用less命令进行分页。使用回车键逐行滚动,或使用空格键逐页滚动。要退出日志输出,请按键盘上的q。
要以反向时间顺序查看日志(即最新的条目先),请使用-r
选项:
$ journalctl -r
您可以通过使用-n
选项后跟要显示的行数来限制显示的日志条目数量。例如,要查看最后15个条目:
$ journalctl -n 15
要仅查看与内核相关的消息,请使用-k
选项:
$ journalctl -k
也可以按优先级筛选日志。日志级别从0(紧急情况)到7(调试)不等,数字越低表示优先级越高。使用-p
选项查看特定级别及以上的日志。例如,要查看错误、关键、警报和紧急日志:
$ journalctl -p 3
要查看特定系统服务的日志,请使用-u
标志后跟服务名称。例如,要查看Apache服务的日志:
$ journalctl -u apache2.service
处理引导日志
journalctl
命令允许用户查看特定引导会话的日志。每个引导都单独记录,因此很容易隔离与特定引导相关的日志。要查看以前引导的所有日志,请使用--list-boots
选项:
$ journalctl --list-boots
要查看上一次系统引导的日志,请使用带有数字-1
的-b
选项。指定不同的数字以查看旧引导的日志:
$ journalctl -b -1
高级用法
您可以使用--since
和--until
选项查看特定时间段内的日志。例如,要查看昨天的日志:
$ journalctl --since yesterday
这些选项可以一起使用以指定特定的时间范围。使用YYYY-MM-DD HH:MM:SS
日期格式以获得精度:
$ journalctl --since 2023-04-05 08:00:00 --until 2023-04-05 12:00:00
要以JSON格式获取日志输出,可以使用-o
选项和json
或json-pretty
:
$ journalctl -o json
或
$ journalctl -o json-pretty
要实时监视正在生成的日志,请使用-f
选项,该选项类似于tail命令的-f选项:
$ journalctl -f
您还可以使用--disk-usage
选项检查日志文件占用的磁盘空间:
$ journalctl --disk-usage
其他提示和选项
journalctl
命令提供了几个附加选项来自定义日志的显示和导航:
- 使用
--no-page
选项以不分页(即不使用less)的方式在终端中显示日志:
$ journalctl --no-page
- 要显示所有日志字段,包括不可打印的字段,请使用
--all
选项:
$ journalctl --all
- 默认情况下,
journalctl
命令以本地时区显示日志。但是,可以使用-u
选项指定其他时区:
$ journalctl -u apache2.service --utc
这里是一些有用的journalctl
命令选项,但这只是冰山一角。请参阅man journalctl
以查看完整的选项列表和语法说明。