tid=50612& 本帖最後由 IT_man 於 2016-11-3 21:24 編輯
, I- O0 [4 t8 C* e0 Y) n9 l l
CentOS下nginx的log檔放在/var/log/nginx,但查看卻沒有被自動切割並壓縮.. J& ]6 F$ d& L* x: E' P0 g1 ?
找了google才發現原來缺少了/etc/logrotate.d/nginx檔,照理安裝nginx時應該會自動產生此檔,為何我的不會自動產生,可能是安裝時出了差錯.3 v; i4 A% A; ?# m
於是乎我從別台server複製過來,搞定.
; e/ V; I3 A @9 S) |# W: L9 I5 m# y+ n0 d0 }- C& a
* V/ R+ O1 g8 @9 X7 x9 N% d9 Q5 p6 T
以下說明日誌管理服務logrotate運作原理:
& ?/ g4 \7 k, v4 _9 B; J) W: F' s' a7 N9 S3 N+ `1 s+ T
' i* p! s+ |" c# _. f7 R4 G因為Nginx在安裝時加入了一個logrotate任務: /etc/logrotate.d/nginx , X7 [4 _- l( p# a, Q
/var/log/nginx/*.log {
; G+ k& Q& j8 o; J; u5 i. d daily
1 B1 p) V; D2 q$ i missingok ( D3 h& \# h4 k$ h! K M2 C4 x
rotate 52 ; q' v: _( G4 j0 K* O" `8 |
compress & z- l" a/ v5 b
delaycompress 7 |, v/ T- k8 ~" e) C$ P7 H) c
notifempty " {) S3 f/ d7 n( O( J% N- ]5 P3 F
create 640 nginx adm 9 \' i4 W+ z/ h. q p2 [
sharedscripts
8 m# f- ~* u2 i2 f) d2 b postrotate ! y( \- f, G2 ?% B) X8 F& A
[ -f /var/run /nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
$ t6 S' I0 ]4 F3 V% r+ ^ endscript
5 O6 l" Z7 v+ ~8 q) \' }& e# |} ) t0 E! V' g ]
Linux日誌管理服務logrotate會定時讀取該文件,根據設置按日誌大小或天數刪除/歸檔舊日誌,建立新日誌. 1 o J) U% ]; S H2 k" {
' C( J7 |4 [ K" T! I* g
9 a6 q8 k( \, A7 V% L配置說明: - L" j! r6 }- E: Q* n/ }( F3 B2 m( W; I
daily:日誌文件每天進行滾動
8 w! V1 R+ L! F$ fmissingok:如果找不到這個log檔案,就忽略過去 / l+ I1 U) l; [7 d( b' x
rotate:保留最近52次滾動的日誌
2 }8 ~. H6 V# n# ^6 r$ F4 ?+ E( e! d! B. Wcompress:透過gzip壓縮轉儲以後的日誌
4 Z! @0 P1 O6 \. U! e- e! }delaycompress:和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮 9 U( X7 N$ v. P9 D
notifempty如果是空文件的話,不轉儲 $ B" u' b) J1 B+ k& [
create mode owner group:轉儲文件,使用指定的文件模式建立新的日誌文件
3 U) A8 j4 q e( M. r) c8 esharedscripts:運行postrotate腳本(該腳本作用為讓nginx重新生成日誌文件) a& _8 }( o' }& r% h
postrotate/endscript:在轉儲以後需要執行的命令可以放入這個敘述對據裏,這兩個關鍵字必須單獨成行 : ~% Y; w" i3 l" K) W
1 a% i( `7 j7 \% U/ o4 T, a3 f
logrotate預設被加入到cron的/etc/cron.daily中作為每日任務執行,配置定義在:
) B! ?7 m+ X$ ^, U9 W$ p/etc/cron.daily/logrotate
6 f4 |/ s* H/ a- Q( R8 @: y$ g. ]7 N5 q0 q( M3 _6 @9 w
要測試寫好的設定檔可以用以下命令:+ O, u1 M0 T K; i* j) ^* h
sudo logrotate -vf /etc/logrotate.d/your-conf-file
$ A+ `; K( S% M/ ]9 C( d o* q2 `0 D
! j- b6 g! o: E1 v% H) V: y! W2 ?
+ N8 p: Z4 w+ O8 y3 G, T- K/ y註:7 `) h" A1 m( j* e: Q3 j% i* _) z* Y' C
參考: https://blog.toright.com/posts/4 ... AD%B8%E6%AA%94.html) A Q0 d9 ? Y3 ^3 w, A
% [% c" d6 P+ U' ]0 t# R# f8 a |