一般來說,日誌是任何故障排除過程中非常重要的一部分,但這些日誌會隨著時間增長。在這種情況下,我們需要手動執行日誌清理以**空間,這是一件繁瑣的管理任務。為了解決這個問題,我們可以在 linux 中配置 logrotate 程式,它可以自動執行日誌檔案的輪換、壓縮、刪除和用郵件發出。
我們可以配置 logrotate 程式,以便每個日誌檔案可以在每天、每週、每月或當它變得太大時處理。
在/etc/logrotate.d/ 目錄下新建乙個檔案,命名隨意。
1 /etc/logrotate.d/tomcat
/var/log/tomcat/catalina.out
各個配置的具體含義:
每天晚上,cron daemon會自動執行/etc/cron.daily目錄下的任務
這個會觸發/etc/cron.daily/logrotate檔案,logrotate一般是隨linux按安裝的。它會執行這個命令-「/etc/sbin/logrotate /etc/logrotate.conf」(注意空格)
/etc/logrotate.conf包含了/etc/logrotate.d目錄下的所有指令碼
這個會觸發上一步你寫的/etc/logrotate.d/tomcate檔案
1 vi logrotate.sh#!/bin/bash
/usr/sbin/logrotate /etc/logrotate.conf
chmod a+x logrotate.sh
2.新增自動化任務每天中午12點執行
00 12 * * * /usr/bin/sh logrotate.sh
預設情況下,logrotate 命令作為放在/etc/cron.daily
中的 cron 任務,每天執行一次,它會幫助你設定乙個策略,其中超過某個時間或大小的日誌檔案被輪換。
命令:/usr/sbin/logrotate
配置檔案:/etc/logrotate.conf
這是 logrotate 的主配置檔案。logrotate 還在/etc/logrotate.d/
中儲存了特定服務的配置。確保下面的那行包含在/etc/logrotate.conf
中,以讀取特定服務日誌配置。
include
/etc
/logrotate.d
`
logrotate 歷史:/var/lib/logrotate.status
重要的 logrotate 選項:
compress
-->
壓縮日誌檔案的所有非當前版本
daily
,weekly
,monthly
-->
按指定計畫輪換日誌檔案
delaycompress
-->
壓縮所有版本,除了當前和下乙個最近的
endscript
-->
標記prerotate
或postrotate
指令碼的結束
errors
"emailid"
-->
給指定郵箱傳送錯誤通知
missingok
-->
如果日誌檔案丟失,不要顯示錯誤
notifempty
-->
如果日誌檔案為空,則不輪換日誌檔案
olddir
"dir"
-->
指定日誌檔案的舊版本放在
「dir
」中
postrotate
-->
引入乙個在日誌被輪換後執行的指令碼
prerotate
-->
引入乙個在日誌被輪換前執行的指令碼
rotate
'n'-->
在輪換方案中包含日誌的
n 個版本
sharedscripts
-->
對於整個日誌組只執行一次指令碼
size
='logsize'
-->
在日誌大小大於
logsize
(例如100k,4m
)時輪換
Logrotate Tomcat 日誌切割
切到root,寫個指令碼 su cdvi log cut.sh bin bash auth root date 2020 04 29 yum y install logrotate sed i s compress compress etc logrotate.conf cat etc logrot...
使用spring Aop 切日誌 日誌管理
先看效果圖下面是資料庫的儲存操作日誌 配置檔案 工具類 public object around proceedingjoinpoint pjp throws throwable 方法通知前獲取時間,為什麼要記錄這個時間呢?當然是用來計算模組執行時間的 long start system.curre...
使用Lumberjack zap進行日誌切割歸檔
為了新增日誌切割歸檔功能,我們將使用第三方庫lumberjack來實現。執行下面的命令安裝lumberjack go get u github.com natefinch lumberjack要在zap中加入lumberjack支援,我們需要修改writesyncer 我們將按照下面的 修改getl...