Skip to content

Commit 2c3e9f0

Browse files
authored
Add journalctl.md (#347)
1 parent 0530c06 commit 2c3e9f0

File tree

1 file changed

+155
-0
lines changed

1 file changed

+155
-0
lines changed

command/journalctl.md

Lines changed: 155 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,155 @@
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+
```

0 commit comments

Comments
 (0)