|
|
楼主 |
发表于 2017-11-30 10:51:23
|
显示全部楼层
日志管理
1 G5 N4 o* J1 ~" _! U; kSystemd 统一管理所有 Unit 的启动日志。带来的好处就是,可以只用journalctl一个命令,查看所有日志(内核日志和应用日志)。日志的配置文件是/etc/systemd/journald.conf。& u. R+ `# B s: m" e4 k. e/ R, T- ]
* j9 }3 M& k1 ijournalctl功能强大,用法非常多。
! B* f( @: _* [# O5 b2 C
/ V1 }' _) u& _- h2 {# n 查看所有日志(默认情况下 ,只保存本次启动的日志) ! j! I4 O. l! _
# journalctl
6 x- J+ q2 w# V' O" W 查看内核日志(不显示应用日志)8 `3 C8 t0 A+ u! | N6 n/ L
# journalctl -k
! X! {6 i! E+ F* \ 查看系统本次启动的日志% S9 r0 p. Y* r$ ?0 |- k; ^
# journalctl -b$ ~" S4 s& \+ @ K" v E
# journalctl -b -0
- K3 y4 a8 d2 u4 a @: F4 `7 I5 a 查看上一次启动的日志(需更改设置)) F2 D; {' ~* P% \) S
# journalctl -b -1
$ l3 x/ `5 \/ ~; K6 }8 a, J, V 查看指定时间的日志
! a- {* M4 U% P9 s2 H9 B P # journalctl --since="2012-10-30 18:17:16"! p+ {( q, z4 [8 b( f- R5 V0 q& }
# journalctl --since "20 min ago"5 @' z v* ~$ d c
# journalctl --since yesterday
. t2 J) u& D& y' L # journalctl --since "2015-01-10" --until "2015-01-11 03:00"+ ^$ t( j6 m! v; V- j: x3 W
# journalctl --since 09:00 --until "1 hour ago"
" T0 v5 ~/ t8 G$ y 显示尾部的最新10行日志, U" q+ X* @! b& \" Q
# journalctl -n2 ~5 m$ C; A5 r1 c) ^. R% b
显示尾部指定行数的日志& e. | o6 L# Y- @5 y+ ]
# journalctl -n 209 g5 b! Y, L0 \: p7 t4 ? M
实时滚动显示最新日志 [9 j! w* m) ]6 }" \# ^7 n
# journalctl -f) P# Y. m+ I: D5 h5 }9 E. Z. |
查看指定服务的日志* }' X2 l. u. ?
# journalctl /usr/lib/systemd/systemd
% D. @: @2 d! j, ] 查看指定进程的日志0 q; T/ b9 r- `$ b* w3 B2 s, O5 |
# journalctl _PID=1- h1 |! Y$ i) c- A. N/ B- f4 l
查看某个路径的脚本的日志
% ]4 @1 q$ ]% P) @ # journalctl /usr/bin/bash g7 b9 Y) V, }0 l/ U( u
查看指定用户的日志
1 G4 r( D# ]+ j3 {9 `' N # journalctl _UID=33 --since today9 ^' }: w# n5 |+ `
查看某个 Unit 的日志* [5 t. @: j' r
# journalctl -u nginx.service
" E( V* J7 X; g/ m0 H # journalctl -u nginx.service --since today+ N' x) N+ u0 e- |5 I3 f4 q0 m, B
实时滚动显示某个 Unit 的最新日志; v8 f) A+ I" Y! r$ R
# journalctl -u nginx.service -f
3 j# M" Y# z) w 合并显示多个 Unit 的日志
6 O! n! V+ j9 i # journalctl -u nginx.service -u php-fpm.service --since today
1 z" B/ x6 U& M* b" A6 K/ i4 ]2 E4 y Z/ i7 h0 }( u2 H
查看指定优先级(及其以上级别)的日志,共有8级 t$ i/ W3 ?0 a$ T2 X
% x2 s1 e# N; ~# `, l% p$ ^0: emerg4 g( y8 q/ X# s7 V1 Q3 A% o: m
1: alert) E9 `: ]/ A- s9 V5 [
2: crit% u6 }: r8 D( ?. J
3: err( j: ^, o4 d/ Z u; }
4: warning9 J; \7 Z7 T- [
5: notice; V( l. G" P) U7 q3 W+ O8 q
6: info
$ p& I, Y4 V. h 7: debug
9 \1 f) Q+ Q4 F$ @& u8 c( y/ T # journalctl -p err -b; p+ v7 {6 Z" N2 I, d% m3 \
日志默认分页输出,--no-pager 改为正常的标准输出
/ ^# F$ V0 F/ x# @# w1 t # journalctl --no-pager
# E) h. F0 j/ u' y! b 以 JSON 格式(单行)输出
4 B9 [/ y! x( Y. z2 C$ b# H0 v # journalctl -b -u nginx.service -o json
; V2 S& @8 s) Y( _$ a 以 JSON 格式(多行)输出,可读性更好: e- X5 K) o9 p, U; m) E3 M# M7 E
# journalctl -b -u nginx.serviceqq
' ~1 [# }, y: r! v -o json-pretty( L3 [( g. K) } C. q3 w0 S
显示日志占据的硬盘空间6 s. J9 g9 p7 `0 m- c
# journalctl --disk-usage9 E( r( U2 v& w+ x; k5 @
指定日志文件占据的最大空间
% b+ B# J# A2 G; r* V0 c # journalctl --vacuum-size=1G
" K# b/ N& k6 z! D) C 指定日志文件保存多久; Q, L! G+ U. J% G& X; b( R
# journalctl --vacuum-time=1years8 I' v, l3 ^$ s7 f9 T
/ y% o* P; ]" q
4 |/ A% T- }" r9 k p
; L/ p2 h, I% \. g: i
|
|