tid=50612& 本帖最後由 IT_man 於 2016-11-3 21:24 編輯 # V1 n% z7 K' f8 _( ?$ d7 \/ K5 d4 ^
; D/ T8 V6 S( o7 e( Q' oCentOS下nginx的log檔放在/var/log/nginx,但查看卻沒有被自動切割並壓縮.
& p3 a' D& D! m) Q" D% n9 k. q找了google才發現原來缺少了/etc/logrotate.d/nginx檔,照理安裝nginx時應該會自動產生此檔,為何我的不會自動產生,可能是安裝時出了差錯.
2 r+ {2 K8 W# B/ _: h+ I/ ?於是乎我從別台server複製過來,搞定.
' ^( @/ _. ~: T0 S# d* u) @
" Q+ r9 ]2 k1 H7 a5 h3 |3 _
. M2 b; [! f. }* c+ u& a& h8 H: ~+ H7 Z: m" g+ P) K
以下說明日誌管理服務logrotate運作原理:9 s) ?9 P4 w1 M# ~6 i: J
1 D1 ~ x. f7 f# B8 W+ E, S2 z' q/ D" u8 ^7 C
因為Nginx在安裝時加入了一個logrotate任務: /etc/logrotate.d/nginx 5 j4 T4 V" Y7 \
/var/log/nginx/*.log {
6 C$ ]9 ^% C4 a- f+ X daily
/ o# T/ V1 u a8 u5 {/ m+ z missingok ! l$ L% Y# w+ N% e0 K, G" C
rotate 52 / A1 ~2 O" }2 P' f& T0 i6 [6 j' _
compress 7 E9 p7 F) n2 X! a! s7 k
delaycompress 0 {5 a! H6 t v& J+ w0 K
notifempty
3 w0 x( ^" n( w" o0 b create 640 nginx adm
2 } J( L. J4 T) b5 h' e sharedscripts
8 P& O* ^+ V i, x4 |) g postrotate
4 [* X) E- l* j" y/ y3 Z9 D [ -f /var/run /nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
i2 _3 s1 ?0 R- }7 A0 M endscript
0 L# o/ O% t: j& V% ^4 L} * a) |5 z1 e9 p
Linux日誌管理服務logrotate會定時讀取該文件,根據設置按日誌大小或天數刪除/歸檔舊日誌,建立新日誌. * {7 Y1 E& @; Q4 `# y2 Z# B
( z3 G5 f4 l! Q" H3 H/ v& k# {
. U" g) g& l! G8 J2 ^& y6 U( ^. U9 G
配置說明:
7 g7 ^3 m/ M& O. i) _daily:日誌文件每天進行滾動 & T. B, D9 P* a- d# L
missingok:如果找不到這個log檔案,就忽略過去
' L- S% k, ^+ ]# D0 Mrotate:保留最近52次滾動的日誌
5 k: p' C# T& A' |! T" n, Zcompress:透過gzip壓縮轉儲以後的日誌 0 V# P; \, ^9 D+ P) x
delaycompress:和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮 5 k! o n' {2 o6 r1 x" G! J( E- O
notifempty如果是空文件的話,不轉儲 - d( v: t$ z; M1 A1 p2 c
create mode owner group:轉儲文件,使用指定的文件模式建立新的日誌文件
6 c# o6 e- o' x* u/ Lsharedscripts:運行postrotate腳本(該腳本作用為讓nginx重新生成日誌文件) ! _" B+ f$ H, {8 h$ V6 {
postrotate/endscript:在轉儲以後需要執行的命令可以放入這個敘述對據裏,這兩個關鍵字必須單獨成行 ! G. p, R. @9 L0 K- y) ]" s0 J0 b# R
3 S3 A& z- C. `5 g4 ?6 b2 D1 G* I' Z- ^
logrotate預設被加入到cron的/etc/cron.daily中作為每日任務執行,配置定義在: : G4 A8 e3 E1 ]) Q, E2 W. D8 l5 A
/etc/cron.daily/logrotate2 w& C6 D2 R* ]7 v" h. e, L# l9 @; t
$ h" s9 T2 C4 a; N# b1 L* I要測試寫好的設定檔可以用以下命令:
6 h7 \7 e8 c, j# \1 Tsudo logrotate -vf /etc/logrotate.d/your-conf-file
. f: n6 Q W9 D! ^: U) n( [/ j2 @ w) A0 O, c( K$ t
0 j# q7 o7 f( f. J& L! d; O
; _4 G% a, \ i7 a/ n) T( A註:
& t8 y4 G0 n: ? k$ r參考: https://blog.toright.com/posts/4 ... AD%B8%E6%AA%94.html
5 f( F% j/ |' {5 V9 y# A
0 E( }* K8 d W2 H% H$ ` |