日誌檔案的輪替 logrotate

2021-07-22 10:14:34 字數 1655 閱讀 5732

logrotate是在規定時間到了之後才來進行日誌檔案的輪替,所以logrotate程式是掛在cron下面進行的,/etc/cron.daily/logrotate記錄了每天要進行的日誌檔案輪替行為。

logrotate的配置檔案

/etc/logrotate.conf

/etc/logrotate.d/

logrotate.conf 是主要的引數檔案,logrotate.d 是乙個目錄,該目錄裡面的所有資料都會被主動讀入/etc/logrotate.conf 當中來進行。另外,在/etc/logrotate.d/ 裡面的檔案中,如果沒有指定一些詳細的設定,則以 /etc/logrotate.conf 的規定來指定為預設值。

看一下預設的logrotate 的內容:

weekly:預設每週進行一次logrotate

rotate 4:保留四個日誌檔案

create:由於日誌檔案被重新命名,因此新建乙個新的來繼續儲存

#compress:被改動的日誌檔案是否需要壓縮

include /etc/logrotate.d:將這個目錄下所有檔案都讀進來執行rotate的工作

/var/log/wtmp{}:僅針對/var/log/wtmp所設定的引數

minsize:檔案容量超過這個值時才進行rotate

create 0664 root utmp:指定新建檔案的許可權與所屬賬號/使用者組

其實可以i將所有資料都寫入logrotate.conf,但這樣一來檔案太複雜,因此還是放在logrotate.d下為好。

logrotate.conf的設定語法

日誌檔案的絕對路徑檔名...

下面我們以/etc/logrotate.d/syslog這個輪替的服務來看看如何設定rotate:

上面內容的含義如下:

檔名:路徑名要寫在前面,並且用絕對路徑,多個檔名用空格分開;

引數:就是寫在{}中的;

:可呼叫外部命令來進行額外的命令執行,這個設定需與sharedscripts...endscripts設定起來使用才行。至於可用環境為:

prerotate:在啟動logrotate之前進行的命令,例如修改日誌檔案的屬性等;

postrotate:在做完logrotate之後啟動的命令,例如重啟某個服務。

例子:我們修改上面這個檔案。之前說過,加上隱藏屬性 +a 之後,日誌檔案的輪替時進行重新命名就變得不可行了,那麼我們如何處理呢?就利用prerotate與postrotate來進行日誌檔案輪替前後所需要做的操作。

實際測試logrotate的操作

#logrotate [-vf] logfile

-v:啟動顯示模式,會顯示logrotate執行的過程

-f:不論是否符合配置檔案的資料,強制每個日誌檔案都進行rotate的操作

Linux 日誌輪替

日誌輪替預設子cron裡面進行 etc cron.daily logrotate 日誌檔案依賴配置檔案 etc logrotate.conf 配置檔案詳細內容解讀 weekly 預設每週進行一次日誌清理 rotate 10 保留的日誌檔案 create new empty log files aft...

logrotate日誌輪替

日誌輪替 log rotate 是指系統管理中乙個自動化的歸檔過期日誌檔案的過程,伺服器上執行的大型軟體,例如lamp,通常會記錄每一條請求,面對數量巨大的日誌,日 輪替提供了乙個有效的方法來限制日誌檔案的大小,同時保留近期的日誌用於分析。使用語法 logrotate 選項 配置檔名 logrota...

Linux細節 Linux 日誌輪替

日誌輪替預設子cron裡面進行 etc cron.daily logrotate 日誌檔案依賴配置檔案 etc logrotate.conf 配置檔案詳細內容解讀 weekly 預設每週進行一次日誌清理 rotate 10 保留的日誌檔案 create new empty log files aft...