日誌分割常用方法:
前者靈活,可以應對各種需求,自定義資料夾、檔名。後者配置簡單,使用方便。
下面我們以分割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在主配置檔案中已經定義好,如果單獨為某個服務...