52AV手機A片王|52AV.ONE

標題: nginx的log檔沒有被自動壓縮備份 [打印本頁]

作者: IT_man    時間: 2016-11-3 16:51
標題: nginx的log檔沒有被自動壓縮備份
本帖最後由 IT_man 於 2016-11-3 21:24 編輯
8 L/ s/ u3 L7 X/ d* A. m! F) Z9 _2 \6 w1 X- \( S, x, ?, U
CentOS下nginx的log檔放在/var/log/nginx,但查看卻沒有被自動切割並壓縮.& `; a! r$ j. l! w) k; U9 q
找了google才發現原來缺少了/etc/logrotate.d/nginx檔,照理安裝nginx時應該會自動產生此檔,為何我的不會自動產生,可能是安裝時出了差錯.
8 e& w" z6 R8 m* ~: }( D% }$ u於是乎我從別台server複製過來,搞定.9 v% s, X) c8 o

/ @, V+ ~! }+ \# @- Z; d; H" D
2 k$ u7 U5 r' V# P

# L! @1 ~, V9 E9 ]; g
以下說明日誌管理服務logrotate運作原理:
0 ?- |" R6 S' c$ c4 g( s% F7 ?; X& |# L2 K3 v& N9 w/ ?2 `) i% U2 Z

" A+ U0 \2 _$ v2 E. v9 m因為Nginx在安裝時加入了一個logrotate任務: /etc/logrotate.d/nginx
4 H, T, Y4 ]0 B: ^/ ~) U+ {/var/log/nginx/*.log {
/ h0 _$ l* \0 d7 Q7 B" l* s        daily
' H" h+ W. V8 j* L7 a  l# J        missingok
9 Y# a! C) Z% F, ^- ]! K        rotate 52 ; T" \8 j7 q. L9 N2 `
        compress 3 T2 g, ~4 d) a6 h1 H
        delaycompress ; I5 H+ `; n6 V8 W7 d
        notifempty
+ c% c/ G, _! Y9 f, `% E        create 640 nginx adm
. i+ Z% o- G& ?) t        sharedscripts - d2 ?9 m. z2 a) h; n6 b' t& P
        postrotate 2 i* W) S3 V  d# j
                [ -f /var/run /nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` - W3 o) u, B5 y6 i+ h
        endscript
+ C( a9 {3 f8 D7 w8 O& {3 L, _} ! L% K, O2 b& e, s2 T
Linux日誌管理服務logrotate會定時讀取該文件,根據設置按日誌大小或天數刪除/歸檔舊日誌,建立新日誌.
+ L0 y- P( d8 ^1 ~+ L& @8 I/ }3 M, _0 Q' y$ W* F

3 C( e; \& ~3 S  S! M配置說明:
' f& L5 d8 ~/ u/ D( C% J8 f4 \daily:日誌文件每天進行滾動 + y. H' ]: _9 A. w
missingok:如果找不到這個log檔案,就忽略過去 ' Q* i  _" r! ^6 b1 I* P  G. D
rotate:保留最近52次滾動的日誌
, E& F- _# f/ X- {/ f9 k. ~compress:透過gzip壓縮轉儲以後的日誌
! N# ]; c& F( X# T+ _- zdelaycompress:和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮
, M0 Q9 w7 v  h, ?" Y5 \notifempty如果是空文件的話,不轉儲 8 Y6 u0 |) P1 E/ ?
create mode owner group:轉儲文件,使用指定的文件模式建立新的日誌文件
" F, M% M3 T5 k4 D6 F4 t7 ?sharedscripts:運行postrotate腳本(該腳本作用為讓nginx重新生成日誌文件) + C3 D+ n& c- _8 w9 R2 ^- O* a# J7 w( O
postrotate/endscript:在轉儲以後需要執行的命令可以放入這個敘述對據裏,這兩個關鍵字必須單獨成行 1 |% Z% D% Z9 p5 {

1 n6 p: B# V. ]% o- elogrotate預設被加入到cron的/etc/cron.daily中作為每日任務執行,配置定義在: 2 p5 x2 |* n0 @4 ]# a
/etc/cron.daily/logrotate
7 F! [7 A0 I- T* c# X

0 }; d8 W" i( p3 k7 u: m% c+ w要測試寫好的設定檔可以用以下命令:
' z& ~1 O+ Y5 H2 `  e+ J( M6 ysudo logrotate -vf /etc/logrotate.d/your-conf-file
- U6 j6 q/ T% D9 K" d) ^' U. G

; }$ G* V) D) R- E5 [1 s3 z& h- _; Z1 t
! B3 r$ o0 `: e
註:' \  m3 s+ ]" D  s8 j' ]
參考:  https://blog.toright.com/posts/4 ... AD%B8%E6%AA%94.html" M: U- N$ t% N1 H6 q
$ y6 j, J. @! b, g5 r9 b# \, Y





歡迎光臨 52AV手機A片王|52AV.ONE (https://www.itech.casa/) Powered by Discuz! X3.2