Linux日誌切割神器「logrotate」

2021-10-10 06:10:00 字數 1778 閱讀 3823

logrotate是幹啥用的

logrotate程式是乙個日誌檔案的管理工具。用於分割日誌檔案,壓縮轉存、刪除舊的日誌檔案,並建立資訊的日誌檔案。logrotate是基於crontab執行的,所以這個時間點是由crontab控制的,系統會按照計畫的頻率執行logrotate

為啥要使用logrotate,手動管理不香嘛

在linux系統中,幾乎所有的操作都會被記錄到相應的日誌中。比如常見的系統日誌"/var/log/messages",應用程式nginx日誌"/var/log/nginx/*.log"。一般伺服器少時,比如自己的電腦,確實自己手動就可以管理日常linux系統產生的日誌資訊。但是伺服器數量多,尤其使用nginx服務部署的web伺服器,每天就會產生大量日誌資訊。如果不做處理,這些大量的日誌資訊就會不斷地消耗磁碟空間以致觸發警告。如果此時人為地去歸檔每天產生地日誌資訊,刪除時間久遠的資訊就會顯得十分棘手。所以為了解救運維人員的髮量,最好使用logrotate程式自動管理。

logrotate日誌分割執行的過程

logrotate是基於cron來執行的,"/etc/anacrontab"配置檔案中定義了每天什麼時候系統就會執行"/etc/cron.daily/logrotate"指令碼。執行"/etc/cron.daily/logrotate"指令碼時,實際執行的是"/etc/logrotate.conf"配置檔案。"/etc/logrotate.conf"配置檔案中配置了操作日誌檔案的預設引數,而日誌檔案具體如何操作,都要從"/etc/logrotate.d"目錄下獲取相應日誌的配置檔案。

logrotate預設自動切割生效時間

「/etc/cron.daily/logrotate"指令碼執行的時間是在」/etc/anacrontab"配置檔案中被定義的。

若是不想使用系統的切割時間,可以自定義切割時間。下面是步驟:

第一步:取消日誌的自動輪轉

第二步:編輯自己想要切割時間的配置檔案

第三步:建立定時任務,定時執行自己的配置檔案

通過上面的步驟就可以自定義時間切割日誌檔案了。(沒有特殊要求的話,自動輪轉就很香,無需自定義)

/etc/logrotate.conf配置檔案

其它重要引數說明:

logrotate無法自動輪詢咋辦

1.檢視"/etc/logrotate.d"目錄下的日誌配置檔案是否配置正確

2.在命令列中手動輪詢:logrotate /etc/logrotate.conf

3.重啟cron服務

logrotate命令格式

linux日誌切割

split命令可以將乙個大檔案分割成多個指定大小或者固定行數的個小檔案,而且速度還很快。常用的幾個引數 b 值為每一輸出檔案的大小,單位為 byte。d 使用數字作為字尾。l 值為每一輸出檔的列數大小。示例 0x00 分割指定大小的檔案。split b 10m data.file分割結束後可以看到多...

Linux系統日誌切割

linux系統日誌切割 如果伺服器有大量的使用者的話,這些日誌檔案的大小會很快地增加,在伺服器硬碟不是非常充足的情況下,必須採取措施防止日誌檔案將硬碟撐爆。現代的linux版本都有乙個小程式,名為logrotate,用來幫助使用者管理日誌檔案,它以自己的守護程序工作。logrotate周期性地旋轉日...

Linux下nginx日誌自動切割

他山之石,可以攻玉 需求與思路 查詢nginx日誌時發現main access.log已達到幾十個g,即便是error.log也接近1g,才意識到一直忽視了日誌檔案的管理,這非常不利於日誌的查詢和問題的追蹤,而人為切割有太多不確定性,所以實現nginx日誌的自動切割是很有必要的。我是通過shell指...