tid=50612& 本帖最後由 IT_man 於 2016-11-3 21:24 編輯
# t; |0 ]7 _. F6 `) J! z% C" w
8 m: U" o; l) ]2 M, RCentOS下nginx的log檔放在/var/log/nginx,但查看卻沒有被自動切割並壓縮.0 @" g1 v9 n7 `( x( v6 G
找了google才發現原來缺少了/etc/logrotate.d/nginx檔,照理安裝nginx時應該會自動產生此檔,為何我的不會自動產生,可能是安裝時出了差錯.
0 V: g# w6 E) m0 p% N" _於是乎我從別台server複製過來,搞定. f9 M1 ~/ J# {
) n( `5 U3 J0 L0 w s
P$ N' d' x: h6 _, D! N9 w9 B1 H6 |( V1 i' S/ H/ w
以下說明日誌管理服務logrotate運作原理:
* z Y. D+ ?3 G
, \$ k% Y8 f! t% x) w, e$ \. y" N: r1 z! X+ v- Z) N5 \# V4 T. }% B
因為Nginx在安裝時加入了一個logrotate任務: /etc/logrotate.d/nginx
3 C; p) s6 R) j2 [ b, `/var/log/nginx/*.log { ) z6 H4 Q! i9 L) {' V- {: d
daily
: ~& X2 ]1 j/ _& \ missingok
$ \: m$ g, }- D+ }: R1 Z! J rotate 52 # ]* l t( o+ M/ ?) g6 l# D. O# e
compress 4 _: a5 q1 g4 ?# n
delaycompress . A- i8 B: h- |' U7 m8 w
notifempty & h! A9 G; q# `) r
create 640 nginx adm
$ a) z! @$ e, P* P( r/ ?* x$ e5 e' j sharedscripts
* q1 q# t2 ^9 ]9 ^0 Y; r postrotate , _/ n* x: O8 c; G$ b8 p0 [
[ -f /var/run /nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
7 z& ^: d% j$ f Q U endscript ( [1 K$ R8 E0 E1 w: x0 z
}
5 R2 n# b0 G0 X1 J: H6 }+ |. ALinux日誌管理服務logrotate會定時讀取該文件,根據設置按日誌大小或天數刪除/歸檔舊日誌,建立新日誌.
: x3 j' X+ O8 k8 F
" q1 s, b/ Z: }/ K& l: q
8 r8 k$ f9 K6 g5 w/ A' h0 D7 |配置說明: 6 Z% i, J, n7 X8 @/ K g6 w- j
daily:日誌文件每天進行滾動
! v* o' K8 G: l! }8 ?! T: mmissingok:如果找不到這個log檔案,就忽略過去
+ P9 r% U0 ? {5 W0 frotate:保留最近52次滾動的日誌 # }+ G$ B, G' E+ Q6 h# R- z- B. X
compress:透過gzip壓縮轉儲以後的日誌
( u2 L2 g" |7 C2 x0 V2 k: mdelaycompress:和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮
! G/ t7 i, m% Q$ g/ e( b4 ]notifempty如果是空文件的話,不轉儲
- F6 b v& q8 D/ n0 C6 B; T8 u) Qcreate mode owner group:轉儲文件,使用指定的文件模式建立新的日誌文件
( o9 [, F( Q+ F5 X2 c& V Tsharedscripts:運行postrotate腳本(該腳本作用為讓nginx重新生成日誌文件)
6 _ Y. ?6 y. S. ]postrotate/endscript:在轉儲以後需要執行的命令可以放入這個敘述對據裏,這兩個關鍵字必須單獨成行
8 Q; _ J! P0 [" }; a/ S" z# N3 I4 e$ Q) J9 U* |( m0 X! D/ f% W
logrotate預設被加入到cron的/etc/cron.daily中作為每日任務執行,配置定義在: - n# o0 X$ s$ ] [, a* P
/etc/cron.daily/logrotate* u% J/ w# ~2 D8 q2 z
: x* q4 v; h3 Y' u! Z! ]要測試寫好的設定檔可以用以下命令:
" K. s2 T- S$ t3 s9 I/ @sudo logrotate -vf /etc/logrotate.d/your-conf-file0 ^+ F W w' e2 `' i. s
8 d! H, C9 C- E
6 v# w. l* s! E3 w# k6 e
1 ~' ~( ]0 m6 x" L2 ?註:! ?, D$ x& u4 C. v
參考: https://blog.toright.com/posts/4 ... AD%B8%E6%AA%94.html% w$ E5 v. p% u( a' c% |3 _
2 `" R, a% A+ F x" ?3 F! u; o, o! Q5 f |