|
|
楼主 |
发表于 2017-11-30 10:51:23
|
显示全部楼层
日志管理
$ m) ?+ y7 Q0 c% U' q) ~Systemd 统一管理所有 Unit 的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是/etc/systemd/journald.conf。% j5 V, b( s. q* Y
% p" L! s: C& y- Q) B/ A- L$ ejournalctl功能强大,用法非常多。! _* ~1 R% ?% }' P9 w
$ r5 l, I0 a; W) H9 B 查看所有日志(默认情况下 ,只保存本次启动的日志) : P# L3 M; q0 A5 ~# x* _ i: `" i
# journalctl
' S% C3 o3 M3 ] 查看内核日志(不显示应用日志) L" o. F0 [; t& B
# journalctl -k1 I& t: a- ^' ~6 x5 ? \
查看系统本次启动的日志" Y9 C" N1 \. r! z, b N
# journalctl -b, E5 D% C9 s, v2 y5 S* g- b d0 E
# journalctl -b -0
% T8 ]$ \) w2 i$ f3 s2 k- W 查看上一次启动的日志(需更改设置)
/ U3 j% y. a) \, r # journalctl -b -18 M/ j. @. [1 B! _! \8 x
查看指定时间的日志
+ S) {, n2 P9 W9 i5 |" o # journalctl --since="2012-10-30 18:17:16"& Q8 R- ]! _- J. m* |
# journalctl --since "20 min ago"
1 r q; e* a% ] # journalctl --since yesterday/ @4 w. P6 J/ b" N, o
# journalctl --since "2015-01-10" --until "2015-01-11 03:00"' m r8 s' U$ u0 |0 C+ j7 h* _) h
# journalctl --since 09:00 --until "1 hour ago"+ J @/ t. T& A; { e9 t
显示尾部的最新10行日志8 I1 z7 u7 P5 z! M4 n% J
# journalctl -n
5 I) t8 K/ o4 ^' E$ ?& ?) @ 显示尾部指定行数的日志. m" Q( y3 z* ]) I% r0 O/ ~3 [
# journalctl -n 20
6 r, b" ?9 E: _* T1 F* N1 e 实时滚动显示最新日志
+ K# f6 @ D( T7 q: f # journalctl -f
- D7 F* D7 H# e# Z4 ^, y7 k0 l4 t 查看指定服务的日志
6 \3 X" |' q+ F # journalctl /usr/lib/systemd/systemd
6 a0 a Z" f/ f6 ~& i9 K" Y# p 查看指定进程的日志7 P5 Q7 m7 B7 l, i; T' d
# journalctl _PID=13 o) f$ W# B! {
查看某个路径的脚本的日志, g, b. L7 l* n& J- h
# journalctl /usr/bin/bash( M/ M, V: s. q# v9 i7 V2 p/ V6 J
查看指定用户的日志% }' f( o' c U0 M0 u# V' K
# journalctl _UID=33 --since today1 a. g) N" s3 A# E2 ?+ ^6 _1 X7 K
查看某个 Unit 的日志
: X3 @' \+ V' I0 o2 C W # journalctl -u nginx.service
) B+ x: I$ `) s9 M" | ]4 ^+ H # journalctl -u nginx.service --since today& A. e$ `9 G+ Q
实时滚动显示某个 Unit 的最新日志
9 G* K- F, f1 i7 P3 y # journalctl -u nginx.service -f) x9 ]$ Y' B- W: f5 ~# F
合并显示多个 Unit 的日志
" t h0 j# ~! k5 m. O # journalctl -u nginx.service -u php-fpm.service --since today5 T3 V, s3 J5 |& l
- s" v h3 s. ?, w. o3 ?查看指定优先级(及其以上级别)的日志,共有8级
2 w$ Z9 V/ y9 [3 b
$ \. P- W* e, c" B( ^; P0: emerg1 D9 H0 z& G( N& e" | g
1: alert5 J2 G1 f7 T( M' n* l6 L
2: crit1 Q+ w, F3 |' [
3: err
9 g; Z4 ~& }: h+ k& h 4: warning- T" p! X+ f0 _. [
5: notice6 i' m1 m! @! _, v2 T2 d; X
6: info W) e' z0 H( r5 g7 W" O
7: debug7 W. {% j) W. g; a
# journalctl -p err -b/ |. T& X9 h" X% x9 c
日志默认分页输出,--no-pager 改为正常的标准输出
8 o8 g6 @/ I; q9 h # journalctl --no-pager9 |/ S9 N. l4 W9 |- S( Y) p9 _- d
以 JSON 格式(单行)输出
5 e5 p7 m/ Z, X/ F # journalctl -b -u nginx.service -o json
8 p! [& F+ D- N8 W, O- r- N 以 JSON 格式(多行)输出,可读性更好
2 e: Y3 v: N* D$ \) {9 D7 i # journalctl -b -u nginx.serviceqq$ _- m1 @) R; e* J8 l o# W
-o json-pretty
7 X2 T `3 ]4 _1 d2 V0 ^2 P/ | 显示日志占据的硬盘空间
, g& K3 t5 u0 a- m/ T7 F # journalctl --disk-usage
# M9 J1 }6 T. _2 Y3 d 指定日志文件占据的最大空间* s7 s% Q7 j+ f+ J" O
# journalctl --vacuum-size=1G
, T1 Z8 p9 l P9 G 指定日志文件保存多久+ `' c" I+ q8 i. H, H, M
# journalctl --vacuum-time=1years- _2 s* @% k+ D* W
% L+ R' k; B$ R4 H9 ]% Y) o9 |: w9 B$ g$ G, o) g- p5 w3 z
2 l: c2 _! q j0 ~) @! {
|
|