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

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

作者: IT_man    時間: 2016-11-3 16:51
標題: nginx的log檔沒有被自動壓縮備份
本帖最後由 IT_man 於 2016-11-3 21:24 編輯 * q( [1 S3 p+ J
- \: A# T  g: z3 o
CentOS下nginx的log檔放在/var/log/nginx,但查看卻沒有被自動切割並壓縮.
: Y/ z9 H# |+ ]9 O5 W找了google才發現原來缺少了/etc/logrotate.d/nginx檔,照理安裝nginx時應該會自動產生此檔,為何我的不會自動產生,可能是安裝時出了差錯.1 F1 z, c- J8 ]: `
於是乎我從別台server複製過來,搞定.9 Y3 j, _/ _- [) `- ~; w4 @

) K; b, C: Z; Y  Y$ I

  F3 j- S# W8 X/ p6 A6 {: K; K! ?- E. k0 y- I& A' H( O
以下說明日誌管理服務logrotate運作原理:/ w# [. ?, S3 S1 g! v8 N! p

3 Q# x/ j$ l, I

% [6 p( }1 ?3 l  Z因為Nginx在安裝時加入了一個logrotate任務: /etc/logrotate.d/nginx 5 t! T7 |4 @" t1 G
/var/log/nginx/*.log {
6 p2 M- B" H5 X( w8 \4 g7 U5 Y        daily
5 z& P- W" D& U. M        missingok
0 ]% {: h8 d. w) d! l9 K" p        rotate 52 0 L- x/ r) \8 O7 G6 ^/ e
        compress 0 f8 l9 m4 ?) t$ |: g( ]) C
        delaycompress
( S5 H& k' C, j% q% _( l        notifempty 3 @( Q* y0 N" B8 j% ~$ h  i
        create 640 nginx adm
2 r; A; b4 y1 E- B$ I, P8 o/ z        sharedscripts , U1 c0 v% D- X  Q4 T7 l; O5 X, M
        postrotate
/ s2 U) B4 O) _) t5 j3 z                [ -f /var/run /nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` 9 f4 v/ t' m3 ?' k. u. V
        endscript 0 t, a+ u6 V4 w' x! T& G
}
( Q1 r- Y: n0 c2 gLinux日誌管理服務logrotate會定時讀取該文件,根據設置按日誌大小或天數刪除/歸檔舊日誌,建立新日誌.
9 h: |6 r3 Z' @8 M% k/ k( Q( A
  T9 S2 @6 i5 Y/ E4 C
7 D. j: |/ e0 i* g! w9 z
配置說明:
4 W  x! |' x. y' H, s3 S( Tdaily:日誌文件每天進行滾動
+ {- x6 f8 L# k' m! S% Mmissingok:如果找不到這個log檔案,就忽略過去
! n6 _8 b7 h6 D( ^rotate:保留最近52次滾動的日誌 ! ^6 U8 f; m' e: ~8 F$ `5 w7 g
compress:透過gzip壓縮轉儲以後的日誌 + m! s7 F& w& ], s' D
delaycompress:和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮 + X: Z! U3 l% j% P3 V7 F! X
notifempty如果是空文件的話,不轉儲
3 Z6 t2 g5 w7 O( y- P& _3 M& _create mode owner group:轉儲文件,使用指定的文件模式建立新的日誌文件 . @( h% ~$ A6 k# [/ s% N
sharedscripts:運行postrotate腳本(該腳本作用為讓nginx重新生成日誌文件)
7 }  e; K/ O1 N2 ^- vpostrotate/endscript:在轉儲以後需要執行的命令可以放入這個敘述對據裏,這兩個關鍵字必須單獨成行 + }6 N) ?5 k8 V( h* k

+ B) i) X- I1 K: `! T. c4 b& y# Blogrotate預設被加入到cron的/etc/cron.daily中作為每日任務執行,配置定義在: ' p3 b+ m# S# D
/etc/cron.daily/logrotate

/ y4 j. w% N: h6 R; P
# |  g$ N1 m( }) u
要測試寫好的設定檔可以用以下命令:
2 f/ s' I3 s4 Y/ g" ]$ w0 X- I- j0 xsudo logrotate -vf /etc/logrotate.d/your-conf-file

* n& |: ]% q1 [1 \) ?8 Y& [; M

8 P) L* b/ F  Y) N& _0 y8 f$ X4 @0 u
  u; s; V6 v3 N: ?* B- x

% Q' ~0 L4 x- @' ^3 s/ d註:
' u2 b0 e7 E7 j5 L& v& u, f參考:  https://blog.toright.com/posts/4 ... AD%B8%E6%AA%94.html0 G4 U  {3 G+ d( `- Q8 r

& b$ u. y. {% U- c+ h$ }4 A0 q




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