tid=50612& 本帖最後由 IT_man 於 2016-11-3 21:24 編輯
5 t8 l, P+ E# T6 \' i; C' x3 Y
; O, T+ @) R6 X) M0 L' i# R4 {CentOS下nginx的log檔放在/var/log/nginx,但查看卻沒有被自動切割並壓縮." S" Y$ m$ Z; R. o) o) H$ g
找了google才發現原來缺少了/etc/logrotate.d/nginx檔,照理安裝nginx時應該會自動產生此檔,為何我的不會自動產生,可能是安裝時出了差錯.6 M. w- k' x. Y) K9 ]3 l7 x
於是乎我從別台server複製過來,搞定.
3 B4 H- w) d; e8 T/ b/ x1 Q
9 S) Z; w8 o- q8 Y6 a) B( L
4 X. S, _( w9 J7 Z3 B) a: q! B8 F# m) E( h1 n2 l4 A
以下說明日誌管理服務logrotate運作原理:
+ a" s l# |1 N- T7 N. p
* k3 T- [0 ]+ }) A
3 V7 x3 ^/ Q; t5 r" n因為Nginx在安裝時加入了一個logrotate任務: /etc/logrotate.d/nginx , ?. x! D% a; G/ _
/var/log/nginx/*.log { 3 T+ Q' M& ]& ]) m, n
daily 7 a5 [* g9 x% \! l1 S, V$ c5 p
missingok ; m$ u' \, q! R# P; [% y0 Z
rotate 52
0 A, c7 J1 K$ ^# C% J; `2 z \0 P% h compress
: F6 t6 N5 q2 t, d/ U5 y delaycompress 2 w6 s/ P. N ^) [3 G
notifempty
/ ]& I1 r$ h+ V0 N" F2 s create 640 nginx adm ( H* m8 @5 L) g& d3 w
sharedscripts 7 [8 X4 E" b9 Q& a' s" Z, t! n
postrotate
! `6 |. T! ^1 D4 l# l r$ X4 G [ -f /var/run /nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
7 X. u) \' H& K, ~ endscript 9 I+ V/ B+ I$ E: o( p9 h+ s
} 2 z2 }7 o6 T: a, f
Linux日誌管理服務logrotate會定時讀取該文件,根據設置按日誌大小或天數刪除/歸檔舊日誌,建立新日誌.
% s/ G- x5 @) i
" k/ h- W- ]1 l8 M" I
. N$ r% g9 O Z" m; ^% T配置說明:
; z4 l( k2 r/ ^- {. `daily:日誌文件每天進行滾動 & V0 n: j+ j" ]+ b2 n; L: T4 l! L
missingok:如果找不到這個log檔案,就忽略過去
8 ~1 t0 f0 x/ F( x3 m' ^' Wrotate:保留最近52次滾動的日誌 & \' Z" Y4 u1 N& H: o* t3 @% G' `
compress:透過gzip壓縮轉儲以後的日誌 / V' ~' ^9 I& W' |4 [
delaycompress:和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮
$ J1 g, u2 A5 P+ ^5 U n( {0 xnotifempty如果是空文件的話,不轉儲 ( _+ T+ S9 P" b: ^
create mode owner group:轉儲文件,使用指定的文件模式建立新的日誌文件 ) S H/ l9 W' R) @4 j& W
sharedscripts:運行postrotate腳本(該腳本作用為讓nginx重新生成日誌文件)
3 J8 w8 V6 L& f+ fpostrotate/endscript:在轉儲以後需要執行的命令可以放入這個敘述對據裏,這兩個關鍵字必須單獨成行 " l% ?9 G3 h: |# U
9 Y; G6 k J5 V" K
logrotate預設被加入到cron的/etc/cron.daily中作為每日任務執行,配置定義在: 6 L" R% [* J* \+ F; |
/etc/cron.daily/logrotate& ]" E/ {/ ~) B6 L
6 O" v) R( a7 `; A S# P& \1 ^要測試寫好的設定檔可以用以下命令:9 P+ g1 ~" t6 p# S6 Q1 K t
sudo logrotate -vf /etc/logrotate.d/your-conf-file' Y& w+ v3 h$ q: Z
: T. ?% [3 h8 V) E, w, U @$ k0 M
3 w7 m: ]. X( V8 `3 e4 u, g% C& M# W6 q4 O5 @
註:
* E9 [8 ?5 k# Y2 A: \2 [# j參考: https://blog.toright.com/posts/4 ... AD%B8%E6%AA%94.html
T% ~; P' q) s8 v- }
3 [, K% N6 a5 j5 \. F7 Q5 I |