centos 日誌切割 CentOS下的日誌切割

2021-10-13 14:25:20 字數 1977 閱讀 1507

在linux下,日誌會不停的增長,為了防止日誌檔案過大,導致我們無法在日誌中快速找到想要的資訊,我們會定時對日誌檔案進行切割。在這裡我將使用logrotate切割日誌。

(1).logrotate的配置檔案

logrotate配置檔案主要在兩個地方:/etc/logrotate.conf以及/etc/logrotate.d/下的明細配置檔案。

其中/etc/logrotate.conf檔案是主配置檔案,/etc/logrotate.d/下的明細配置檔案都會被讀入/etc/logrotate.conf進行執行,所以請注意這裡還涉及到了公有變數和私有變數。

logrotate的執行是由crond服務來呼叫的,其指令碼是/etc/cron.daily/logrotate,每天自動執行。我們可以看一下指令碼具體內容:

簡單的說明下,就是/usr/sbin/logrotate工具呼叫了/var/lib/logrotate/logrotate.status和/etc/logrotate.conf兩個檔案。然後將執行的結果(就是那個$?,成功為0,不成功為非0)進行判斷,非0時執行/usr/bin/logger命令。最後退出。

看完定時計畫任務,我們再來看主配置檔案/etc/logrotate.conf(也就是公有變數)。具體內容如下:

配置檔案引數說明:

missingok  日誌切割期間產生錯誤將被忽略(如果日誌丟失,不報錯繼續切割)

daily、weekly、monthly、yearly  每天、每週、每月、每年執行

create mode owner group  切割後指定建立新的空白檔案的屬性

nocreate  不建立新的日誌檔案

rotate n  保留n份,多餘刪除,不計算新建日誌檔案

dateext  用當前日期作為字尾命名格式(預設年月日)

dateformat .%s  配合dateext使用,緊跟在下一行出現,定義切割後的檔名,只支援%y,%m,%d,%s

size/minsize  達到指定大小才會切割,預設單位bytes,還可以是kb和mb

compress  切割結束後,歸檔並使用gzip格式壓縮

nocompress  解除compress引數

delaycompress  總是與compress引數一起使用,指示logrotate不要將最近的歸檔壓縮,壓縮將在下一次切割進行。

nodelaycompress  解除delaycompress引數

ifempty  即使日誌為空,也執行切割

notifempty  如果日誌為空,切割不執行

prerotate/endscript  在所有其他指令之前執行prerotate和endscript之間的命令。

postrotate/endscript  在所有其他指令完成後,postrotate和endscript之間的命令將被執行。

sharescripts  所有日誌切割後統一執行一次指令碼,如果沒有配置該引數,則每個日誌切割後都會執行一次指令碼。

errors address  切割時的錯誤資訊傳送到指定的emial位址

mail address  切割日誌傳送到指定的email位址

nomail  切割日誌不傳送郵件

olddir directory  切割後的日誌檔案放入指定目錄,必須與當前日誌處在同一檔案系統

noolddir  切割後的日誌檔案與當前檔案放在同一目錄下

copytruncate  用於還在開啟中的日誌檔案,把當前日誌備份並截斷;先拷貝後清空,可能丟失部分日誌

nocopytruncate  備份日誌檔案,但不截斷。

(2).檢視上次切割日誌時間

/var/lib/logrotate/logrotate.status中預設記錄logrotate上次切割日誌檔案的時間

(3).自定義日誌切割

首先將sshd服務產生的日誌自定義,作為實驗目標

之後建立切割明細配置檔案,並強制執行

logrotate的-d選項是預演,-f是強制執行,-v是顯示詳細過程。

(4).擴充套件

centos 日誌切割 CentOS下的日誌切割

在linux下,日誌會不停的增長,為了防止日誌檔案過大,導致我們無法在日誌中快速找到想要的資訊,我們會定時對日誌檔案進行切割。在這裡我將使用logrotate切割日誌。1 logrotate的配置檔案 logrotate配置檔案主要在兩個地方 etc logrotate.conf以及 etc log...

centos下Nginx 日誌管理及切割

在我日常開發伺服器維護的時候經常發現我們的伺服器磁碟被站滿了。經過一頓排查發現多數發現是我們的日誌沒有處理好搞的問題。這時候如果我們可以將nginx日誌切割然後定時刪除一下很老的日誌就非常方便了。說明本環境是centos6.5如果是linux 其他版本命令可能會有差異。使用linux的crontab...

apache切割日誌

系統環境 ubuntu11.04 apache2 使用apache自帶的rotatelog進行日誌切割,可將日誌的檔名以年月日時分秒儲存,如2011 10 21 14 20 00,設定如下 首先在apache2的目錄下有個sites enabled資料夾,裡面有個000 default檔案,在該資料...