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

 找回密碼
 立即註冊
查看: 1436|回復: 0

[nginx|php-fpm] nginx的log檔沒有被自動壓縮備份

[複製鏈接]
發表於 2016-11-3 16:51:30 | 顯示全部樓層 |閱讀模式
tid=50612& 本帖最後由 IT_man 於 2016-11-3 21:24 編輯
' b3 q4 e0 s* }- l: H) r, D1 g" r4 ^) h. M4 }
CentOS下nginx的log檔放在/var/log/nginx,但查看卻沒有被自動切割並壓縮.  r) m; B' a; c7 v5 v& X
找了google才發現原來缺少了/etc/logrotate.d/nginx檔,照理安裝nginx時應該會自動產生此檔,為何我的不會自動產生,可能是安裝時出了差錯.: a! n) I* b9 f6 a
於是乎我從別台server複製過來,搞定.' R1 U: _' Z2 x7 S
) o( f1 I, U+ v: q7 h4 U; U7 r

0 B; d# e: w( R* p4 }' g4 O% m9 u# U$ f0 \9 ]( ~
以下說明日誌管理服務logrotate運作原理:
, Q2 ?( S- G+ u( u) k# e" }! }% N& E' l4 W' _) f
/ ^' i% U! B8 i# l
因為Nginx在安裝時加入了一個logrotate任務: /etc/logrotate.d/nginx
2 g9 {+ ?/ B$ P: N5 T9 M4 L/var/log/nginx/*.log {
; [9 T2 K; Y" r+ \) a( ~        daily
4 N+ A2 {0 D, S4 Z8 ?+ T        missingok
# Q8 y8 ^- Q8 B4 H8 n        rotate 52 - m: O3 D2 u- H) ]
        compress
0 n1 u/ ?( I: c, x/ Q% ]. n        delaycompress
2 z$ t9 u+ h" Q+ Y/ F        notifempty
: f: p/ h+ e" o        create 640 nginx adm 6 t% w" {" N9 |( d4 @# C/ a7 B' n
        sharedscripts + y: y) F/ b! r& F& \5 I
        postrotate
1 I4 R  ~: e- b8 b% O! k9 ?  \                [ -f /var/run /nginx.pid ] && kill -USR1 `cat /var/run/nginx.pid` , V7 T, H5 B+ v, Q! z/ ?
        endscript
# D  D& h5 @0 A- R3 L( M# w}
+ w( J: S8 q" N+ f' fLinux日誌管理服務logrotate會定時讀取該文件,根據設置按日誌大小或天數刪除/歸檔舊日誌,建立新日誌.
- O5 S8 e6 J+ C" P' s4 B2 [3 p, G% D  l* `

+ s. `% r2 I3 U2 M/ N% Z4 m. K* U配置說明:
, p! h' V( m( Z, W, u# v5 }. `3 T+ ?0 \daily:日誌文件每天進行滾動
3 J! G: e/ C2 Imissingok:如果找不到這個log檔案,就忽略過去 5 a) ]' \5 u, H4 ^6 X
rotate:保留最近52次滾動的日誌
0 Z& E7 k8 t$ e/ _4 I% Y- Zcompress:透過gzip壓縮轉儲以後的日誌 0 e( J' {" g) }& l
delaycompress:和compress一起使用時,轉儲的日誌文件到下一次轉儲時才壓縮 3 o' z/ Q) D, u4 x3 }
notifempty如果是空文件的話,不轉儲 , n; S9 D7 _  ~: f* ?& a
create mode owner group:轉儲文件,使用指定的文件模式建立新的日誌文件
% x. Q8 u0 E5 t+ i3 x% z0 {sharedscripts:運行postrotate腳本(該腳本作用為讓nginx重新生成日誌文件)
; \( n! a0 S2 E) h. hpostrotate/endscript:在轉儲以後需要執行的命令可以放入這個敘述對據裏,這兩個關鍵字必須單獨成行 ! S0 W: x) a1 Q
( m9 W6 v% A. V3 U- g6 f6 z
logrotate預設被加入到cron的/etc/cron.daily中作為每日任務執行,配置定義在:
! @% F; f# A, _4 r/etc/cron.daily/logrotate

/ A5 m$ ?" \$ l  [- o
( |# T) z. E% U$ P) d8 v! o
要測試寫好的設定檔可以用以下命令:
$ b9 `9 d) ^$ \" r; p4 o; F8 g& jsudo logrotate -vf /etc/logrotate.d/your-conf-file
9 P0 S7 R3 H+ O9 A0 a1 Z

# m/ X6 N3 M$ I. a" G, {. T: \0 t
$ ^5 o0 A' X5 v' T

  d& m) n2 g3 j3 [: |! F註:7 u( L9 o, b2 G6 W( X' A' i
參考:  https://blog.toright.com/posts/4 ... AD%B8%E6%AA%94.html
2 _5 [" I8 w) S  v" l0 N: r4 ^1 k4 C( c- I
回復

使用道具 舉報

您需要登錄後才可以回帖 登錄 | 立即註冊

本版積分規則



中文酷站排行榜

本區塊內容依據『電腦網路內容分級處理辦法』為限制級網站,限定年滿18歲以上或達當地國家法定年齡人士方可進入,且願接受本站各項條款,未滿18歲 謝絕進入瀏覽。為防範未滿18歲之未成年網友瀏覽網路上限制級內容的圖文資訊,建議您可進行網路內容分級組織ICRA分級服務的安裝與設定。 (為還給愛護 本站的網友一個純淨的論壇環境,本站設有管理員)

QQ|小黑屋|手機板| 52AV手機A片王

GMT+8, 2025-4-5 20:24 , Processed in 0.067539 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回復 返回頂部 返回列表