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

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

作者: IT_man    時間: 2016-11-3 16:51
標題: nginx的log檔沒有被自動壓縮備份
本帖最後由 IT_man 於 2016-11-3 21:24 編輯
4 a" O! J% o0 ]- F7 j; Y6 ?* C* c' v3 l
CentOS下nginx的log檔放在/var/log/nginx,但查看卻沒有被自動切割並壓縮.
0 X  A3 S% ^) \% @& ^  J找了google才發現原來缺少了/etc/logrotate.d/nginx檔,照理安裝nginx時應該會自動產生此檔,為何我的不會自動產生,可能是安裝時出了差錯.
4 S: E. c7 c2 c* P8 S7 J於是乎我從別台server複製過來,搞定.$ z7 q$ M( y/ _+ F) f* p

3 m/ d+ `, _0 x7 l. c

1 N& _/ i' r5 p* a5 ]
. y, M) n. P( f3 x. }0 U0 H
以下說明日誌管理服務logrotate運作原理:7 ]3 |3 s: L) w& X: n

8 l; }( p6 J3 p! f3 N8 [: J: O

& f. ~( ^2 j+ U8 P7 k因為Nginx在安裝時加入了一個logrotate任務: /etc/logrotate.d/nginx 3 l% K: L$ ]  [
/var/log/nginx/*.log {
7 F: h# @. E/ `6 }        daily 7 l% p2 Y; I( G5 d0 d) g
        missingok 6 ?( i" w/ ~$ {; O
        rotate 52 ! Z1 A/ C  V- }
        compress 9 H- `3 n6 J6 P0 ]4 Z; I
        delaycompress " z  s" K1 f2 m0 B  v& ?$ F1 [; {
        notifempty
3 B6 C( [& x6 c' e8 i) B        create 640 nginx adm
* C/ E8 A5 G$ |: D0 z        sharedscripts
/ ?9 s& L$ T! G+ V2 ~- G5 U, T        postrotate
' P* J7 \: c. H  C                [ -f /var/run /nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` - M& c6 ~' b9 N3 h% v' J6 }
        endscript
- ^2 y+ m& q$ `' p# G}
5 q1 [. s) c% q1 K3 F* K. y# v* P; n; mLinux日誌管理服務logrotate會定時讀取該文件,根據設置按日誌大小或天數刪除/歸檔舊日誌,建立新日誌. ! n5 S  p) b: r8 g

0 @& |* T' t! w( ~

1 m7 O# c, W8 j$ {  @' t* y配置說明: ) f: p6 w3 l+ R# @
daily:日誌文件每天進行滾動 2 @" T! g. B) ]; b0 q8 R
missingok:如果找不到這個log檔案,就忽略過去
$ K; W, [: x! drotate:保留最近52次滾動的日誌
1 \" J* w6 k6 u; k* Y1 b- I  C. acompress:透過gzip壓縮轉儲以後的日誌 1 m% ]9 V- |0 P8 M
delaycompress:和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮
6 M* a/ ^: G  C" e( |8 [notifempty如果是空文件的話,不轉儲 " q8 j9 v* k$ ^3 Y" A
create mode owner group:轉儲文件,使用指定的文件模式建立新的日誌文件
$ k4 I0 c! J; z/ L; k/ |/ fsharedscripts:運行postrotate腳本(該腳本作用為讓nginx重新生成日誌文件)
# d' R. L% Y8 g! u1 z7 Apostrotate/endscript:在轉儲以後需要執行的命令可以放入這個敘述對據裏,這兩個關鍵字必須單獨成行
" A. i5 Q7 ]* @2 E* V, d+ ^
, _/ H# T3 q! o+ g# Ylogrotate預設被加入到cron的/etc/cron.daily中作為每日任務執行,配置定義在: 0 |1 W' I7 G& o7 a! N9 i
/etc/cron.daily/logrotate

1 G$ J4 c( T% \) U0 ~8 O; A2 ~

& \  R& D6 h9 E" G; e要測試寫好的設定檔可以用以下命令:
( B1 m6 n  t3 ssudo logrotate -vf /etc/logrotate.d/your-conf-file

. s6 V9 g5 H; O( v3 g" b" w
) w) Q9 l  z' K

) T8 g: q1 H* T

5 i& o. a' i5 i7 w3 o  b註:, }* @7 b6 Z5 D8 c% O
參考:  https://blog.toright.com/posts/4 ... AD%B8%E6%AA%94.html# ?4 a! O9 x  W1 s* w4 E4 z6 j

4 C$ H, q% m" X




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