journalctl的使用
在 2024-02-28 发布于 linux系统 分类
大多数主要的Linux发行版都使用systemd来管理服务和系统组件。
systemd以二进制格式存储日志,因此常用的文本工具如grep, awk等无法正常使用。必须使用systemd自带的journalctl命令来查看日志。
因此,我们需要了解journalctl是如何工作的,以便能够在Linux系统上有效地检查日志。
启动记录列表
通常systemd记录的日志量很大,如果全部拿来分析就如大海捞针。好在一般定位系统问题,我们会把注意目标放在某次系统启动后运行期间。journalctl支持提取某次启动后运行产生的日志,这将极大的排除无关日志,减少我们查找日志的工作量。
列出启动记录
journalctl --list-boots
该命令将历次启动记录列出来,输出格式如下:
-15 09bad35d53484cc595030b120c85044a Fri 2023-12-15 12:49:16 CST—Fri 2023-12-15 12:51:17 CST
-14 cd417a2ec30f4e898ee532d86385f2a7 Tue 2023-12-19 10:06:33 CST—Tue 2023-12-19 10:07:49 CST
...
-3 7ca8d1fdd1e44397a659b7b849eee23e Mon 2024-01-29 10:30:44 CST—Mon 2024-01-29 10:37:40 CST
-2 01de1d085201423f92038bad673ae0cd Mon 2024-01-29 10:37:53 CST—Mon 2024-02-05 06:38:39 CST
-1 89e00a7b41b04083b4e0c4c277ab8934 Mon 2024-02-05 06:54:10 CST—Wed 2024-02-07 07:40:33 CST
0 912cda9aa04041d0952bf94df7bd6e7f Wed 2024-02-07 07:41:43 CST—Wed 2024-02-07 15:15:01 CST
第一列是对启动记录的编号,当前的启动记录是0,其余的都是负数,最早的启动记录编号是-15
查看特定启动记录期间的日志
journalctl -b
不带参数的-b
选项表示当前启动记录
journalctl -b -1
查看前一次启动记录期间的日志。-b <启动记录编号>
选项表示查看特定启动记录期间的日志。
过滤记录
--since/--until
: 按照时间过滤
--unit
: 按照UNIT过滤