本帖最後由 IT_man 於 2016-11-3 21:24 編輯 . p& Q X s: n+ y L, |' u
' ?/ [$ {; y' R4 N4 a7 i
CentOS下nginx的log檔放在/var/log/nginx,但查看卻沒有被自動切割並壓縮.
/ {& M; ?0 H9 E1 D' s! p; g找了google才發現原來缺少了/etc/logrotate.d/nginx檔,照理安裝nginx時應該會自動產生此檔,為何我的不會自動產生,可能是安裝時出了差錯.) Q. Q; L+ ^# T; W9 d5 F/ W
於是乎我從別台server複製過來,搞定.
2 s: N9 G. }, a- H% d
6 A( ?2 l; x) j% z2 l
' E" {4 t- d2 r- J7 B7 Y; B9 a5 O4 c4 m5 F C+ y4 i& k
以下說明日誌管理服務logrotate運作原理:. x. C- [4 f/ [
: h1 J9 A# Z# G ]; v; s( p, Z
, k( I. p, q4 Z! [9 E因為Nginx在安裝時加入了一個logrotate任務: /etc/logrotate.d/nginx $ V Y( d* y. t0 x& d2 V* u
/var/log/nginx/*.log {
3 A$ N9 C6 e' ^6 I daily
% K' U9 P: E5 `/ l/ b' y missingok
% m0 I; g( s. _ \" _, [! ^ rotate 52 9 w% s) b7 C$ [3 N$ X
compress
7 L3 K0 n, Q9 |3 { delaycompress
& m4 @( L% P: @$ g5 r notifempty
" m5 G! r: } e9 `6 B3 g+ J. ] create 640 nginx adm
2 c- p3 ]8 }' {# _# |( H7 C& f/ I sharedscripts
; A* g; [- S: G postrotate
, p: X( c5 f$ D, h0 B6 H [ -f /var/run /nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` 9 r8 y; C0 [& e
endscript
' q4 I& U u0 \" H1 w}
% Z! x6 h7 ^- i/ e- fLinux日誌管理服務logrotate會定時讀取該文件,根據設置按日誌大小或天數刪除/歸檔舊日誌,建立新日誌.
5 p: J! [: Q& `& K
, f, Z# C% k& e6 N% P: D6 X3 W }; A! ^3 i3 Q5 n6 p/ o! M3 ^! @# h& y
配置說明:
2 k9 {. u& T5 J# D- ?9 s( F; T! j% hdaily:日誌文件每天進行滾動
8 Q- q1 p R0 o) Z8 emissingok:如果找不到這個log檔案,就忽略過去
# ~8 ?) }6 l2 f! i$ e" `rotate:保留最近52次滾動的日誌 & N8 f! ~. {! z0 }# X3 b
compress:透過gzip壓縮轉儲以後的日誌
8 @2 c( P2 c8 Z i+ H* k( g: l0 }delaycompress:和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮 3 V9 ^, Y, o) R/ R+ u2 u" z, K6 Q* k
notifempty如果是空文件的話,不轉儲
" L8 l9 f r+ b' X2 T/ l! Q, dcreate mode owner group:轉儲文件,使用指定的文件模式建立新的日誌文件
' ^! Z) G, y4 I8 Esharedscripts:運行postrotate腳本(該腳本作用為讓nginx重新生成日誌文件)
4 a8 o M; ^6 Y6 R$ Bpostrotate/endscript:在轉儲以後需要執行的命令可以放入這個敘述對據裏,這兩個關鍵字必須單獨成行 4 a' L- y# @5 L$ u! v' S' D
7 N; }" O$ s" g! r4 N8 x; q8 M
logrotate預設被加入到cron的/etc/cron.daily中作為每日任務執行,配置定義在: / v' k: m4 v$ c6 X, G i
/etc/cron.daily/logrotate
9 @! b4 x e+ r' y) s& `& [) E! ^5 t' `7 X$ Q3 @# ~* L
要測試寫好的設定檔可以用以下命令:
4 C! Z5 i* Y# m; j, Z; L9 r$ B; ysudo logrotate -vf /etc/logrotate.d/your-conf-file
7 l' ^8 Z" Z) Q& r2 `! v0 X$ S' C( n& N% w' |* C3 z) P( t
- T9 g/ r+ B. t g$ S5 p. H9 @. }( W, T
0 S- t3 _5 m) Z& e, T: d註:+ ]0 p& Q; F3 v6 b2 L+ y
參考: https://blog.toright.com/posts/4 ... AD%B8%E6%AA%94.html
, ?9 E6 r& X- ]+ z/ V! a* T2 Y: J- u5 T. n' Q, t7 w* b: ^" |
|
|