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

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

作者: IT_man    時間: 2016-11-3 16:51
標題: nginx的log檔沒有被自動壓縮備份
本帖最後由 IT_man 於 2016-11-3 21:24 編輯
5 _' d" w4 e  }7 V( ^
9 i* R+ U! Z/ X. kCentOS下nginx的log檔放在/var/log/nginx,但查看卻沒有被自動切割並壓縮.. O/ ?$ v  I) W
找了google才發現原來缺少了/etc/logrotate.d/nginx檔,照理安裝nginx時應該會自動產生此檔,為何我的不會自動產生,可能是安裝時出了差錯.
" N; T: e5 @! y7 W& \2 L% k) G於是乎我從別台server複製過來,搞定.- m+ V( \4 B- e8 T+ y, M

; j7 S+ h9 m" G8 d: V; h
. @  S# H6 A6 ]3 z9 d7 l0 s

3 v) F9 U/ L2 J9 `# B
以下說明日誌管理服務logrotate運作原理:
: [7 J8 W. r, V' q+ y; H6 W3 Z
; x3 \% }- |! T4 J% i' L& Z
9 y1 I: R: U. L7 k/ n
因為Nginx在安裝時加入了一個logrotate任務: /etc/logrotate.d/nginx
( l' w3 v3 p8 B3 i) v0 k/var/log/nginx/*.log {
) r* g, H1 B5 y4 i4 o* ?* Z        daily : {4 k3 }$ o6 M7 v$ x5 ?
        missingok
5 @9 P! e4 x# D; _5 ~        rotate 52
4 `. I* g/ O6 U( ]/ Q" R        compress 4 ?8 ?' X# p* i& K" ^
        delaycompress % G3 q* {* h- r/ o' ^& _0 D$ ^
        notifempty 6 g7 b6 l% k5 F
        create 640 nginx adm
; |* X  a5 v5 Q: ~        sharedscripts 5 _4 C# G) J5 ~! e- V  J" ^7 |% p
        postrotate
- W$ V, {: z" F4 S9 P$ B5 G                [ -f /var/run /nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` 8 ]& j0 J/ @: f4 P, L7 w0 q# H1 X5 `
        endscript : F1 ]) D/ X4 ^" H
}
# }' o; [  _- m8 P, MLinux日誌管理服務logrotate會定時讀取該文件,根據設置按日誌大小或天數刪除/歸檔舊日誌,建立新日誌.
$ G' o/ h0 J3 M- z2 W* k: t# {; T4 W! b' ?

% `+ U" M0 q( T2 m6 n' V& O配置說明:
' w& I1 \3 |# p; F; y4 g3 ddaily:日誌文件每天進行滾動
; l( [% }; ^4 F2 mmissingok:如果找不到這個log檔案,就忽略過去 . E  u+ ^$ C9 ?8 e8 ^! ]' ~* Y' }9 ~
rotate:保留最近52次滾動的日誌 9 U& O3 Z5 Z. x( q
compress:透過gzip壓縮轉儲以後的日誌 , i- Q" O& \- J5 k4 a& b4 o
delaycompress:和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮 - |& ]+ R9 R# C. ]& L' N
notifempty如果是空文件的話,不轉儲 5 T) C7 a- S' d+ D% {6 c0 D  y
create mode owner group:轉儲文件,使用指定的文件模式建立新的日誌文件 $ Z6 G/ j' m9 H
sharedscripts:運行postrotate腳本(該腳本作用為讓nginx重新生成日誌文件)
: A+ [3 a- P" `+ n. T9 rpostrotate/endscript:在轉儲以後需要執行的命令可以放入這個敘述對據裏,這兩個關鍵字必須單獨成行
8 j/ O9 ~2 ~4 g; g4 `4 F, w/ w1 w) n7 S, O; Z) ^$ f
logrotate預設被加入到cron的/etc/cron.daily中作為每日任務執行,配置定義在:
  p. @( ?" U% S( ~; U2 V/etc/cron.daily/logrotate
+ }% x: D* s, k% C7 N+ G: {

9 d# A1 m& t* n) o- a# }要測試寫好的設定檔可以用以下命令:6 q; [+ H3 I2 c( U, o. {' f3 o
sudo logrotate -vf /etc/logrotate.d/your-conf-file

* v' U8 _! V0 X  K' o, g$ O1 v

+ [! a' n: g7 A$ K9 j$ H" m* j5 x, C: h: w# @: ^+ @7 m

! D1 [; P5 G# \1 _  ?) U2 _/ m8 O: S註:
) U8 B; v) ^5 \( [. l參考:  https://blog.toright.com/posts/4 ... AD%B8%E6%AA%94.html
6 M( c3 K$ d0 k6 E' X
  [! o- l. E. a+ B- P; w




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