1 | journalctl
|
2 | ===
|
3 |
|
4 | 检索 systemd 日志,是 CentOS 7 才有的工具。
|
5 |
|
6 | ### 语法
|
7 |
|
8 | ```shell
|
9 | journalctl [OPTIONS...] [MATCHES...]
|
10 | ```
|
11 |
|
12 | ### 选项
|
13 |
|
14 | ```shell
|
15 | Flags:
|
16 | --system # 显示系统日志
|
17 | --user # 显示当前用户的用户日志
|
18 | -M --machine=CONTAINER # 在本地容器上操作
|
19 | -S --since=DATE # 显示不早于指定日期的条目
|
20 | -U --until=DATE # 显示不晚于指定日期的条目
|
21 | -c --cursor=CURSOR # 显示从指定光标开始的条目
|
22 | --after-cursor=CURSOR # 在指定光标后显示条目
|
23 | --show-cursor # 在所有条目之后打印光标
|
24 | -b --boot[=ID] # 显示当前启动或指定启动
|
25 | --list-boots # 显示有关已记录引导的简洁信息
|
26 | -k --dmesg # 显示当前启动的内核消息日志
|
27 | -u --unit=UNIT # 显示指定单元的日志
|
28 | -t --identifier=STRING # 显示具有指定系统日志标识符的条目
|
29 | -p --priority=RANGE # 显示具有指定优先级的条目
|
30 | -e --pager-end # 在pager中立即跳转到末尾
|
31 | -f --follow # 关注期刊
|
32 | -n --lines[=INTEGER] # 要显示的日志条目数
|
33 | --no-tail # 显示所有行,即使在跟随模式下
|
34 | -r --reverse # 首先显示最新的条目
|
35 | -o --output=STRING # 更改日志输出模式 (short, short-iso,
|
36 | short-precise, short-monotonic, verbose,
|
37 | export, json, json-pretty, json-sse, cat)
|
38 | --utc # 以协调世界时 (UTC) 表示的时间
|
39 | -x --catalog # 在可用的情况下添加消息说明
|
40 | --no-full # Ellipsize 字段
|
41 | -a --all # 显示所有字段,包括长的和不可打印的
|
42 | -q --quiet # 不显示特权警告
|
43 | --no-pager # 不要将输出通过管道传输到寻呼机
|
44 | -m --merge # 显示所有可用期刊的条目
|
45 | -D --directory=PATH # 显示目录中的日志文件
|
46 | --file=PATH # 显示日志文件
|
47 | --root=ROOT # 对根目录下的目录文件进行操作
|
48 | --interval=TIME # 更改 FSS 密封键的时间间隔
|
49 | --verify-key=KEY # 指定FSS验证密钥
|
50 | --force # 使用 --setup-keys 覆盖 FSS 密钥对
|
51 |
|
52 | Commands:
|
53 | -h --help # 显示此帮助文本
|
54 | --version # 显示包版本
|
55 | -F --field=FIELD # 列出指定字段的所有值
|
56 | --new-id128 # 生成新的 128 位 ID
|
57 | --disk-usage # 显示所有日志文件的总磁盘使用情况
|
58 | --vacuum-size=BYTES # 将磁盘使用量减少到指定大小以下
|
59 | --vacuum-time=TIME # 删除早于指定日期的日志文件
|
60 | --flush # 将所有日志数据从 /run 刷新到 /var
|
61 | --header # 显示期刊头信息
|
62 | --list-catalog # 显示目录中的所有消息 ID
|
63 | --dump-catalog # 在消息目录中显示条目
|
64 | --update-catalog # 更新消息目录数据库
|
65 | --setup-keys # 生成新的 FSS 密钥对
|
66 | --verify # 验证日志文件的一致性
|
67 | ```
|
68 |
|
69 | ### 实例
|
70 |
|
71 | **过滤输出**
|
72 |
|
73 | `journalctl` 可以根据特定字段过滤输出。如果过滤的字段比较多,需要较长时间才能显示出来。
|
74 |
|
75 | 示例:
|
76 |
|
77 | 显示本次启动后的所有日志:
|
78 |
|
79 | ```shell
|
80 | journalctl -b
|
81 | ```
|
82 |
|
83 | 不过,一般大家更关心的不是本次启动后的日志,而是上次启动时的(例如,刚刚系统崩溃了)。可以使用 -b 参数:
|
84 |
|
85 | - `journalctl -b -0` 显示本次启动的信息
|
86 | - `journalctl -b -1` 显示上次启动的信息
|
87 | - `journalctl -b -2` 显示上上次启动的信息 `journalctl -b -2`
|
88 |
|
89 | 只显示错误、冲突和重要告警信息
|
90 |
|
91 | ```shell
|
92 | journalctl -p err..alert
|
93 | ```
|
94 |
|
95 | 也可以使用数字, `journalctl -p 3..1`。如果使用单个 number/keyword,则 `journalctl -p 3` - 还包括所有更高的优先级。
|
96 |
|
97 | 显示从某个日期 ( 或时间 ) 开始的消息:
|
98 |
|
99 | ```shell
|
100 | journalctl --since="2012-10-30 18:17:16"
|
101 | ```
|
102 |
|
103 | 显示从某个时间 ( 例如 20分钟前 ) 的消息:
|
104 |
|
105 | ```shell
|
106 | journalctl --since "20 min ago"
|
107 | ```
|
108 |
|
109 | 显示最新信息
|
110 |
|
111 | ```shell
|
112 | journalctl -f
|
113 | ```
|
114 |
|
115 | 显示特定程序的所有消息:
|
116 |
|
117 | ```shell
|
118 | journalctl /usr/lib/systemd/systemd
|
119 | ```
|
120 |
|
121 | 显示特定进程的所有消息:
|
122 |
|
123 | ```shell
|
124 | journalctl _PID=1
|
125 | ```
|
126 |
|
127 | 显示指定单元的所有消息:
|
128 |
|
129 | ```shell
|
130 | journalctl -u man-db.service
|
131 | ```
|
132 |
|
133 | 显示内核环缓存消息r:
|
134 |
|
135 | ```shell
|
136 | journalctl -k
|
137 | ```
|
138 |
|
139 | **手动清理日志**
|
140 |
|
141 | `/var/log/journal` 存放着日志, `rm` 应该能工作. 或者使用 `journalctl`,
|
142 |
|
143 | 例如:
|
144 |
|
145 | 清理日志使总大小小于 100M:
|
146 |
|
147 | ```shell
|
148 | journalctl --vacuum-size=100M
|
149 | ```
|
150 |
|
151 | 清理最早两周前的日志.
|
152 |
|
153 | ```shell
|
154 | journalctl --vacuum-time=2weeks
|
155 | ```
|