52AV手機A片王|52AV.ONE
標題:
nginx的log檔沒有被自動壓縮備份
[打印本頁]
作者:
IT_man
時間:
2016-11-3 16:51
標題:
nginx的log檔沒有被自動壓縮備份
本帖最後由 IT_man 於 2016-11-3 21:24 編輯
+ U. ^7 @2 }" @( ?$ G5 L6 S
. u6 u* m9 w& T: f5 M
CentOS下nginx的log檔放在/var/log/nginx,但查看卻沒有被自動切割並壓縮.
" K# P0 u- _# I- r$ A5 }7 X$ |1 m8 z; i
找了google才發現原來缺少了
/
etc/logrotate.d/nginx檔,照理安裝nginx時應該會自動產生此檔,為何我的不會自動產生,可能是安裝時出了差錯.
0 H% t i* q1 r' P, M
於是乎我從別台server複製過來,搞定.
( m7 \$ |1 [9 x/ K
' O- ?8 {! G3 v. C/ Q/ m
( g" _2 J( S( u$ J2 j& t7 _: a- |( B7 M. H) F
# U5 ~& |1 V1 }& d
以下說明
日誌管理服務
logrotate運作原理:
8 R* T+ K! T; ~( o% W A+ I
- G/ D) B l6 P+ R0 ]7 I& T( a
# [& z4 e r$ M! X
因為Nginx在安裝時加入了一個logrotate任務: /etc/logrotate.d/nginx
$ F) _' ~ P/ A9 J$ @
/var/log/nginx/*.log {
6 B- n( ]/ x& V0 ]) r
daily
! j: ~- }6 d5 t9 Y4 _
missingok
$ P3 x( G8 ^, c
rotate 52
* Y, n$ J/ }! R/ ~8 K
compress
" [4 u$ F! V/ c6 |: k4 `! c
delaycompress
2 f4 ^2 y) n; t
notifempty
) h# I! u4 x$ @5 l6 N
create 640 nginx adm
# b* `' C8 [$ b/ J0 U$ F/ s
sharedscripts
) Y" Q2 x u. A: O, d1 `/ ~5 E( a7 H
postrotate
5 ? D: i, m# v- q
[ -f /var/run /nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid`
1 ~! n4 ~3 V5 S) k: ?# V
endscript
- g* `" j' j& T3 ]+ E
}
0 H7 z! w4 E W T
Linux日誌管理服務logrotate會定時讀取該文件,根據設置按日誌大小或天數刪除/歸檔舊日誌,建立新日誌.
- U2 g# w. L2 F3 B6 s3 c! x
; w, V1 ^) l3 ?2 i1 P. o
% n' }) g/ n! X
配置說明:
$ L% o% T" |- @: t t# o3 G
daily:日誌文件每天進行滾動
+ ~7 x( l+ ?, g
missingok:如果找不到這個log檔案,就忽略過去
$ r1 L6 c0 |4 a/ T
rotate:保留最近52次滾動的日誌
. n2 m0 b1 Q) y& O4 G( e3 @
compress:透過gzip壓縮轉儲以後的日誌
2 o, v8 T# T$ }+ t1 s( N8 X3 m" w" W
delaycompress:和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮
d9 S# `2 [: ?4 z- q! F- n. F
notifempty如果是空文件的話,不轉儲
& U+ P) D0 d( K
create mode owner group:轉儲文件,使用指定的文件模式建立新的日誌文件
5 d$ X) L* g1 A2 m
sharedscripts:運行postrotate腳本(該腳本作用為讓nginx重新生成日誌文件)
4 t% n: G7 E$ R1 X% y
postrotate/endscript:在轉儲以後需要執行的命令可以放入這個敘述對據裏,這兩個關鍵字必須單獨成行
V/ r6 [5 N8 q$ ]
7 `$ t1 A9 z9 V1 |2 f
logrotate預設被加入到cron的/etc/cron.daily中作為每日任務執行,配置定義在:
+ ?8 s( w4 O" H* z* Y% ~
/etc/cron.daily/logrotate
8 S4 T/ N1 A- `9 n2 [/ z
1 Q: M8 o3 O6 J' N- X
要測試寫好的設定檔可以用以下命令:
; c0 l& { w, }! x4 F5 l b; p
sudo logrotate -vf /etc/logrotate.d/your-conf-file
5 Q( E& B" T4 H& ~5 z
6 _$ b, Y6 o6 U7 |& U' ~( K# E5 [
& V5 P6 ]3 P0 ~" c! d& }" I& X( Z7 O9 @
7 x; _6 u" {9 z
註:
) Q7 ?1 Y. M- s2 ^, a
參考:
https://blog.toright.com/posts/4 ... AD%B8%E6%AA%94.html
5 f1 z4 Z2 Q( F
3 G ~7 n# v) ?3 T+ }: J
歡迎光臨 52AV手機A片王|52AV.ONE (https://www.52av23.xyz/)
Powered by Discuz! X3.2