? 服務器上的日志包括系統日志和服務日志每天都會產生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-server ?rotate-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查看幫助。
? ? ? 本文轉自Jx戰壕 ?51CTO博客,原文鏈接:http://blog.51cto.com/xujpxm/1861431,如需轉載請自行聯系原作者