|
|
楼主 |
发表于 2017-11-30 10:51:23
|
显示全部楼层
日志管理
; M# i5 w; }# D0 |1 ~! R) TSystemd 统一管理所有 Unit 的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是/etc/systemd/journald.conf。! k Y# `) ]: ]! U1 \% b/ ~; {
# _$ E1 ]4 U* I0 z7 _7 ^0 x( i
journalctl功能强大,用法非常多。* C. k, O2 W# V; d% c
9 y( ?( Y$ r6 k2 m9 c' @/ [1 S0 Q
查看所有日志(默认情况下 ,只保存本次启动的日志) ) ]6 r4 N1 B, p( X
# journalctl u; T9 J* o/ u
查看内核日志(不显示应用日志)
8 D, o' z* |5 y # journalctl -k- b" B9 x, P- G: o/ |. Y& B
查看系统本次启动的日志
. ^( x5 W4 ^+ ]# Z # journalctl -b
; t, e( V/ P Y8 r4 l # journalctl -b -04 r a8 A' ^4 R! H. `0 U5 A
查看上一次启动的日志(需更改设置)
# D1 O/ ?2 v0 o. g! [ # journalctl -b -1, ^3 E6 E6 k& J2 W
查看指定时间的日志- |: o* H5 l; S" Y6 H
# journalctl --since="2012-10-30 18:17:16"8 r2 V9 N) x/ g* G. z7 d
# journalctl --since "20 min ago"# g$ m+ f4 G4 e- B
# journalctl --since yesterday2 K1 S" k1 T2 D# N8 a5 u
# journalctl --since "2015-01-10" --until "2015-01-11 03:00"
3 E7 m) C4 L- w" Q! \ # journalctl --since 09:00 --until "1 hour ago"6 d$ E p0 b4 D) }6 _" _+ C5 _
显示尾部的最新10行日志
+ |3 m6 h) P( Y+ @# F$ h # journalctl -n
& k" s- A$ Q9 t! I1 J 显示尾部指定行数的日志# Z, I+ p7 _' x$ R$ w
# journalctl -n 20
5 i3 Q9 c" h. z 实时滚动显示最新日志0 h% R! t3 N$ g8 e: t
# journalctl -f( U \( U/ e1 ^% j9 X+ K
查看指定服务的日志, e+ W; }3 j8 Z6 f
# journalctl /usr/lib/systemd/systemd
3 C% j/ A3 j/ h8 H7 D 查看指定进程的日志5 Z+ e( g+ k# C* K
# journalctl _PID=1# m1 H( A8 j/ l- Q8 v" L; s9 L
查看某个路径的脚本的日志$ J+ M/ Q5 l" e& S" a
# journalctl /usr/bin/bash+ K3 ?1 s! s3 ~2 ~* F* `
查看指定用户的日志% M1 d4 X) [4 h7 V3 x, I
# journalctl _UID=33 --since today
0 w2 r0 J7 {* d, f9 ] 查看某个 Unit 的日志8 w1 \8 Y- A+ q, `% S6 H8 z8 o
# journalctl -u nginx.service
" m- ?1 g* [ ]2 U0 S+ K # journalctl -u nginx.service --since today
* m5 M' L w3 z! B& c+ i6 t 实时滚动显示某个 Unit 的最新日志
! t$ A* M. I& @; P8 Y! h # journalctl -u nginx.service -f- b3 y6 a( a6 W$ l: P7 f
合并显示多个 Unit 的日志/ O. ^: U# C! Q% o0 V& w1 B% D2 L
# journalctl -u nginx.service -u php-fpm.service --since today1 \7 x* }) ~ l* M/ s
3 {. t& D4 p0 ]: H+ l9 @& H
查看指定优先级(及其以上级别)的日志,共有8级
( U3 |0 H* z/ ]/ K, D/ F. b, {3 G+ b7 L ~, m1 a$ E% e$ T* S9 E0 a
0: emerg7 o" p7 q3 M( }; A0 h X; g, I+ S% d5 B
1: alert. S3 b- H- E% ^' Z5 v5 n+ b& ~5 Y
2: crit7 [3 j4 M% y% R: R7 S
3: err
* z3 Z' o8 L6 g+ P; ^ 4: warning
% H; `7 Z. G" W( Q0 K 5: notice
8 X! A( z( A, S! Z2 [ 6: info
: P/ F: r3 v3 O* |* I9 o0 H6 e" h8 ? 7: debug
& |2 ~! a, G- b' v+ x# X: v # journalctl -p err -b& ]: P* y) q c1 H
日志默认分页输出,--no-pager 改为正常的标准输出5 A$ K% _) J. B2 O7 Y: [
# journalctl --no-pager
! n4 A2 O8 @" H; p2 Z' { 以 JSON 格式(单行)输出4 Z) l; E# O( I/ g5 @% [/ O+ r! x
# journalctl -b -u nginx.service -o json g8 b6 | J3 ?: R( ^# d8 T
以 JSON 格式(多行)输出,可读性更好
5 ~( Z! F; I, ?; e9 } # journalctl -b -u nginx.serviceqq
# u* H" }' y& i8 M, Q8 V' H: [ -o json-pretty) n+ p/ X$ R- U. Q/ V3 Y
显示日志占据的硬盘空间
" k0 t, M; |! \ ]. s6 |# n # journalctl --disk-usage
b4 r1 Q7 a! V- H+ Z 指定日志文件占据的最大空间' y8 B8 Q- x* l& y8 D6 [+ j
# journalctl --vacuum-size=1G0 G& {* c, ~8 r# U
指定日志文件保存多久
/ A8 V C' D: | T+ g; x0 Y( a # journalctl --vacuum-time=1years8 ~# m T, d3 Y9 Z& o; s: |
& f( O5 V% V- `0 }. P7 m
, D4 p! O1 O1 f% Z- k8 b* v8 L3 G1 @5 \ S% v0 O
|
|