logrotate 進行nginx日誌分割

2021-06-22 18:59:19 字數 2264 閱讀 9668

日誌分割常用方法:

前者靈活,可以應對各種需求,自定義資料夾、檔名。後者配置簡單,使用方便。

下面我們以分割nginx日誌為例介紹一下使用logrotate分割日誌例項。

logrotate簡單介紹

logrotate使用cron按時排程執行,日誌的執行過程原理為不斷改名稱:比如你有個access.log檔案,需要保留4個日誌檔案,那麼logrotate是這麼輪轉的:

access.log滿足輪轉條件?(排程時間,日誌大小是否滿足要求)如果需要輪轉則進行下列步驟,否則跳過

access.log.3存在?如果存在則刪除

access.log.2如果存在則改名為access.log.3

access.log.1如果存在則改名為access.log.2

access.log如果存在則改名為access.log.1

建立乙個空的access.log檔案

如下圖所示:

logrotate配置檔案一般在:

/etc/logrotate.conf 通用配置檔案,可以定義全域性預設使用的選項。

/etc/logrotate.d/*** 自定義服務配置檔案

我們可以看下/etc/logrotate.conf裡面的內容

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

# 乙個星期輪轉一次

weekly

#保留四個日誌

rotate 4

# 輪轉舊的日誌檔案後建立新日誌檔案

create

# 使用日期作為輪轉日誌的字尾

dateext

# 壓縮儲存日誌

#compress

# 包含某個目錄下的自定義日誌輪轉

include/etc/logrotate.d

# no packages own wtmp and btmp -- we'll rotate them here

/var/log/wtmp

/var/log/btmp

我們新建乙個/etc/logrotate.d/nginx來分割nginx日誌,配置檔案內容如下:

1

2

3

4

5

6

7

8

9

/data/logs/nginx/access/access.log/data/logs/nginx/access/default.log

第一行:指明日誌檔案位置,多個以空格分隔

第二行:呼叫頻率,有:daily,weekly,monthly可選

第三行:總共輪換多少個日誌檔案,這裡為保留15個

第四行:限制條件,大於10m的日誌檔案才進行分割,否則不操作

預設logrotate是通過crontab定期執行的,我們也可以手動執行檢視結果:

v選項表示檢視詳細執行過程

f表示強制執行日誌輪轉(不然時間不到,日誌檔案大小等條件不滿足,不會執行)

強烈建議執行一下,了解下執行過程。

驗證是否執行,檢視cron的日誌即可

參考:

利用logrotate 進行日誌管理

在很多的應用程式中會列印日誌,用以記錄相應的操作。當隨著時間的增加,日誌檔案的大小也會慢慢的變大。使得我們不得不去處理這些日誌 備份 刪除等 下面說一下我個人中常用的logrotate的配置選項 1.logrotate的配置檔案在 etc logrotate.conf 2.在這個檔案中引用了乙個目錄...

logrotate清理日誌

清理日誌 logrotate配置目錄 etc logrotate.d 配置引數資訊 引用文字 monthly monthly 日誌檔案將按月輪循。其它可用值為 daily weekly yearly size 50m 日誌檔案大小可以增長到50m rotate 5 一次將儲存5個歸檔日誌。對於第六個...

logrotate日誌輪詢

在任何作業系統中,日誌的作用不言而喻。下面來講下關於linux系統中的日誌輪詢。logrotate是linux中的日誌輪詢工具,主要有兩個配置檔案 etc logrotate.conf和 etc logrotate.d,其中 etc logrotate.d在主配置檔案中已經定義好,如果單獨為某個服務...