本帖最後由 IT_man 於 2016-11-3 21:24 編輯 0 v4 x' V+ X' K" J1 d% D- A
. m. s' Z0 t7 x1 s$ d1 ?CentOS下nginx的log檔放在/var/log/nginx,但查看卻沒有被自動切割並壓縮.8 t0 u1 n4 t# N, U6 S. m- C
找了google才發現原來缺少了/etc/logrotate.d/nginx檔,照理安裝nginx時應該會自動產生此檔,為何我的不會自動產生,可能是安裝時出了差錯.- W" @2 g z/ E" c4 E
於是乎我從別台server複製過來,搞定.
* Y% E; l# Q3 V! a
. J( Z! z3 c6 G6 g9 a8 X
7 c- H; ?8 e8 h9 D6 }0 g
7 z' h1 o1 S2 B8 J! j. w3 C以下說明日誌管理服務logrotate運作原理:
+ x/ U' n; B( ]7 f+ [+ G1 r
5 k3 J" t$ q$ g- T8 C F! `& ~$ U* y- U6 c
因為Nginx在安裝時加入了一個logrotate任務: /etc/logrotate.d/nginx . I9 @. y- h O; F3 u# O8 f
/var/log/nginx/*.log { 6 o7 C$ d- M+ g8 K) z# k2 |5 B8 K- q
daily * K6 F# s" F0 B! N# ~- I
missingok
2 w* o" c# ~7 m3 R rotate 52
9 w% H4 r% Y0 z& T4 H) @ compress
2 m& w9 {; z1 L: V3 z delaycompress
, } W/ _. \7 U) |3 U& B3 Y6 j% ~* @8 T notifempty
& {- J- r+ `- g# s; S create 640 nginx adm 4 R. [7 C# b9 t
sharedscripts
0 O1 F- m+ \. g* h& ^& I+ X postrotate 7 a/ h8 U7 K w, M9 W% z9 q
[ -f /var/run /nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` 3 `5 S2 k/ R2 P. x1 Y
endscript 0 `7 j$ J0 _; e8 L3 t
} 5 N8 y+ _' O3 f: w7 i
Linux日誌管理服務logrotate會定時讀取該文件,根據設置按日誌大小或天數刪除/歸檔舊日誌,建立新日誌.
' P+ D( d q! W2 H2 I8 `9 V ^5 C" m- d( s! S1 y
; z( p3 m: q# I9 G) z
配置說明:
* t" U K7 a8 T. m7 S! a8 @daily:日誌文件每天進行滾動
$ z& `" T. I! J6 n! xmissingok:如果找不到這個log檔案,就忽略過去 7 N! `8 `4 G- }
rotate:保留最近52次滾動的日誌
1 b) Y, }6 _7 _- L3 V: Wcompress:透過gzip壓縮轉儲以後的日誌 , z3 w: P) \) j3 x# p" @: u# w
delaycompress:和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮 . t9 E8 O7 |, ]( c2 I$ p
notifempty如果是空文件的話,不轉儲
; N' Z( F5 \! C+ T+ R6 I! D2 m1 K( F- ?create mode owner group:轉儲文件,使用指定的文件模式建立新的日誌文件 2 J5 y3 s! O0 c; Q3 Y
sharedscripts:運行postrotate腳本(該腳本作用為讓nginx重新生成日誌文件)
0 \3 z2 C) x ~+ @0 spostrotate/endscript:在轉儲以後需要執行的命令可以放入這個敘述對據裏,這兩個關鍵字必須單獨成行
- Q. w7 F+ ]0 X* O" c1 w
+ o9 T, M7 j6 W, Elogrotate預設被加入到cron的/etc/cron.daily中作為每日任務執行,配置定義在: : k- n" d$ ~8 n2 d$ c/ i# b. _2 o& p( ]
/etc/cron.daily/logrotate
( M( m. M, ?$ y, H, T
1 g3 X0 @- Q- `- |0 I0 L. Y5 |+ }( C( E要測試寫好的設定檔可以用以下命令:
, {& m& ?1 b$ a2 u% V0 lsudo logrotate -vf /etc/logrotate.d/your-conf-file4 M, @/ {# {# D' ~) g( u `
& U% h8 P( h( t' {! c9 o/ }0 S( k: H# Z
: b" ]+ {5 ^9 L/ T/ w9 |9 m
註:
% I9 W3 P+ B6 }8 Y$ }' w# y6 f參考: https://blog.toright.com/posts/4 ... AD%B8%E6%AA%94.html
* |5 ]6 T' I8 ?# Z8 d2 Z+ T) [' a; n, e. ~9 b6 ?
|
|