天天看點

Logrotate操作手冊

一.概要說明

logrotate工具是為了友善進行日志管理而産生的一個工具,主要可以完成的工作包含:基于天、周、月、檔案大小進行日志的滾動備份、壓縮、删除甚至是發送郵件。

二.調用方式

  1. 每天晚上,cron daemon會自動執行/etc/cron.daily目錄下的任務。
  2. 這個會觸發/etc/cron.daily/logrotate檔案,logrotate一般是随linux安裝的。

它會執行這個指令“/usr/sbin/logrotate/etc/logrotate.conf”。

  1. /etc/logrotate.conf 包含了/etc/logrotate.d目錄下的所有腳本。
  2. 這個會觸發自定義的/etc/logrotate.d/…檔案。

三. logrotate文法

logrotate [-dv][-f] [-s] config_file+

什麼都不跟則顯示版本資訊和簡單的幫助資訊,如果處理過程中出現異常則傳回非0的$?;

--? 顯示幫助資訊
-v 顯示詳細資訊
-d 開啟調試模式并隐含開啟-v,不會對日志和logrotate的state檔案産生操作
-f 忽略調用周期強制調用logrotate,友善測試
-m 告知logrotate發送郵件的指令
-s 多個logrotate運作時告知logrotate自己使用的state檔案(/var/lib/logrotate.status)
config_file+ 表示可以使用多個配置檔案(預設為/etc/logrotate.conf)在後面,最好是在一個配置檔案中進行引用(測試某條新的規則時可以單獨建立一個配置檔案并用-f參數進行強行調用)

例: /usr/sbin/logrotate -vf/etc/logrotate.d/audit

四. logrotate配置目錄

日志配置目錄/etc/logrotate.d/…

logrotate預設配置目錄/etc/logrotate.conf

五. logrotate 參數說明

daily 表示每天整理一次,其它可用值為‘weekly’、‘monthly’、‘yearly’
rotate 30 表示保留30份的備份檔案
dateext 讓舊日志檔案以建立日期命名

compress

nocompress

通過gzip 壓縮轉儲以後的日志

不壓縮日志

delaycompress  與compress一起用,轉儲的日志檔案到下一次轉儲時才壓縮
copytruncate 表示先複制log檔案的内容,然後再清空
size 5M 日志檔案大小增長到5MB再進行輪循。
notifempty 如果日志檔案為空,輪循不會進行。
missingok 在日志輪循期間,任何錯誤将被忽略,例如“檔案無法找到”之類的錯誤。

postrotate

endscript

在轉儲以後執行指令,postrotate和endscript裡面指定的指令将被執行。

在這種情況下,rsyslogd 程序将立即再次讀取其配置并繼續運作。

prerotate

endscript

在轉儲以前執行的指令

六. XenServer 日志切割

/etc/logratate.d/…

audit audit.log
syslog messages
secure
maillog
spooler
boot.log
cron

audit具體配置:

/var/log/audit.log {

    daily

    rotate 30

    dateext

    compress

    delaycompress

    notifempty

    missingok

    sharedscripts

    postrotate

      /bin/kill -HUP `cat/var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

      /bin/kill -HUP `cat/var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true

    endscript

}

syslog具體配置:

/var/log/messages /var/log/secure /var/log/maillog/var/log/spooler /var/log/boot.log /var/log/cron {

    daily

    rotate 30

    dateext

    compress

    delaycompress

    missingok

    notifempty

    sharedscripts

    postrotate

       /bin/kill -HUP `cat/var/run/syslogd.pid 2> /dev/null` 2> /dev/null || true

       /bin/kill -HUP `cat/var/run/rsyslogd.pid 2> /dev/null` 2> /dev/null || true

    endscript

}

七. Tomcat 日志切割

       Tomcat日志配置路徑 /etc/logrotate.d/tomcat

       Tomcat日志存儲路徑 /opt/tomcat7/logs/…

vim /etc/logrotate.d/tomcat

/opt/tomcat7/logs/catalina.out {

rotate 14

daily

copytruncate

compress

notifempty

missingok

}

繼續閱讀