log日誌輪轉 logrotate

2021-09-20 16:20:18 字數 2515 閱讀 7438

伺服器上的日誌包括系統日誌和服務日誌每天都會產生n多log,好多人會自己寫指令碼來進行日誌的切割、壓縮等,而忽略了系統自帶的服務--logrotate。

簡介

logrotate是個十分有用的工具,它可以自動對日誌進行截斷(或輪循)、壓縮以及刪除舊的日誌檔案。它是基於cron來執行的,其指令碼是「/etc/cron.daily/logrotate」。主流linux發行版上都預設安裝有logrotate包,這也是我選擇用他的主要原因。

使用

實際執行時,logrotate會呼叫配置檔案「/etc/logrotate.conf」:

也可以在「/etc/logrotate.d」目錄裡放置自己的配置檔案,用來覆蓋logrotate的預設值。

下面是乙個切割rabbitmq日誌的例子:

1

2

3

4

5

6

7

8

9

10

11

12

13

/var/log/rabbitmq/*.log {

weekly

missingok

rotate 20

compress

delaycompress

notifempty

dateext

copytruncat

sharedscripts

postrotate

/etc/init.d/rabbitmq-serverrotate-logs >/dev/null

endscript

logrotate引數說明:

daily — 每日旋轉日誌檔案。

weekly — 每週旋轉日誌檔案。

monthly — 每月旋轉日誌檔案。

compress — 用gzip壓縮旋轉的日誌檔案。

size size — 在日誌檔案達到一定大小時開始旋轉。大小是以bytes (預設), kilobytes (sizek)或megabytes (sizem)計算。

nocompress — 在不需要壓縮旋轉日誌檔案的情況下使用。

delaycompress — 在使用壓縮選擇時,旋轉檔案不會在下乙個迴圈開始時被壓縮。

copytruncate — 用於還在開啟中的日誌檔案,把當前日誌備份並截。複製當前的日誌檔案,並置空當前檔案。

nocopytruncate — 把日誌檔案複製進備份,但該開放檔案不會被裁剪。

dateext - 用時間格式表示日誌,輪換的日誌字尾為-yyyymmdd格式

rotate count — 在刪除前旋轉檔案的特定次數。如果計數為零,就意味著沒有副本保留。而5則意味著保留5個副本。

create mode owner group — 旋轉日誌檔案並建立允許特定組合使用者的新檔案。預設是使用與原始檔案一樣的模式,組合使用者。

missiongok - 如果檔案找不到的話不會報錯,直接跳過

nocreate — 可以防止產生新日誌檔案。

nodelaycompress –    日誌檔案會在迴圈過程中被壓縮。

errors address — 將logrotate錯誤郵件傳送到某個位址。

ifempty — 即使在空檔案時也要旋轉。這是logrotate的預設項。

notifempty — 空檔案不旋轉。

mail address — 這個郵件日誌檔案是迴圈到乙個位址,因此能有效從系統中清楚。

nomail - 在郵件日誌迴圈時,副本不郵寄。

olddir directory — 這個選項會將迴圈日誌檔案保持在特定目錄。該目錄必需與現有日誌檔案在同一檔案系統。

noolddir — 迴圈的日誌檔案與現有檔案處於相同目錄。

prerotate/endscript - 在轉儲以前需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行

postrotate/endscript - 在轉儲以後需要執行的命令可以放入這個對,這兩個關鍵字必須單獨成行

其他引數可自行通過man logrotate檢視幫助。

LINUX logrotate日誌輪轉

問題 1 針對 var log admin.log設定輪轉,要求如下 2 要求每天輪轉一次 保留3個備份 啟用壓縮 3 日誌不存在時忽略 4 當檔案大於100k也達到一天時自動輪轉 5 建立的新檔案許可權0600,所有者root,所屬組root 方案logrotate輪轉優點 減小日誌檔案大小,降低...

logrotate日誌輪轉

主要實現以下要求 每天輪轉一次 保留3個備份 啟用壓縮 日誌不存在時忽略 當檔案大於100k也達到一天時自動輪轉 建立的新檔案許可權0600,所有者root,所屬組root 可以寫在全域性配置檔案中也可以寫在自定義配置檔案中,推薦自定義配置檔案。命令操作如下所示 root svr5 cd etc l...

Linux日誌輪轉

日誌管理基礎 rsyslog 日誌管理 logrotate日誌輪轉 採集 分析 一 處理日誌的程序 rsyslogd 絕大部分日誌記錄,和系統操作有關,安全,認證sshd,su,計畫任務at,cron httpd nginx mysql 可以自己的方式記錄日誌 root youngfit ps au...