天天看點

logrotate切割日志

我部署了LDAP Server,但openldap預設沒有儲存日志,需要自己配置rsyslog服務來儲存日志

編輯/etc/rsyslog.conf ,加入以下内容,将日志儲存在以下路徑

1

<code>local4.*           </code><code>/var/log/ldap/openldap</code><code>.log</code>

重新開機rsyslog服務

<code>/etc/init</code><code>.d</code><code>/rsyslog</code>  <code>restart</code>

由于openldap日志會越來越大,是以需要logrotate進行日志切割。

建立一個配置檔案

/etc/logrotate.d/slapd

内容如下

2

3

4

5

6

7

8

<code>{</code>

<code>    </code><code>daily         </code><code>#每天輪詢一次日志</code>

<code>    </code><code>rotate 5      </code><code>#存儲5個日志,超過該數目後的日志将被删除</code>

<code>    </code><code>copytruncate  </code><code>#複制原日志内容後,将原日志清空,而不建立新檔案</code>

<code>    </code><code>nocompress    </code><code>#切割時不壓縮</code>

<code>    </code><code>dateext       </code><code>#切割時檔案名帶有日期</code>

<code>    </code><code>missingok     </code><code>#如果指定的目錄不存在,logrotate會報錯,此項用來關閉報錯</code>

<code>}</code>

測試配置是否有問題

<code>logrotate -f </code><code>/etc/logrotate</code><code>.d</code><code>/slapd</code>

如果指令執行沒有失敗,則表示配置沒有問題。

更過參數參考:

參數 功能

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

nocompress 不需要壓縮時,用這個參數

copytruncate 用于還在打開中的日志檔案,把目前日志備份并截斷

nocopytruncate 備份日志檔案但是不截斷

create mode owner group 轉儲檔案,使用指定的檔案模式建立新的日志檔案

nocreate 不建立新的日志檔案

delaycompress 和 compress 一起使用時,轉儲的日志檔案到下一次轉儲時才壓縮

nodelaycompress 覆寫 delaycompress 選項,轉儲同時壓縮。

errors address 專儲時的錯誤資訊發送到指定的Email 位址

ifempty 即使是空檔案也轉儲,這個是 logrotate 的預設選項。

notifempty 如果是空檔案的話,不轉儲

mail address 把轉儲的日志檔案發送到指定的E-mail 位址

nomail 轉儲時不發送日志檔案

olddir directory 轉儲後的日志檔案放入指定的目錄,必須和目前日志檔案在同一個檔案系統

noolddir 轉儲後的日志檔案和目前日志檔案放在同一個目錄下

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

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

daily 指定轉儲周期為每天

weekly 指定轉儲周期為每周

monthly 指定轉儲周期為每月

rotate count 指定日志檔案删除之前轉儲的次數,0 指沒有備份,5 指保留5 個備份

tabootext [+] list 讓logrotate 不轉儲指定擴充名的檔案,預設的擴充名是:.rpm-orig, .rpmsave, v, 和 ~ 

size size 當日志檔案到達指定的大小時才轉儲,Size 可以指定 bytes (預設)以及KB (sizek)或者MB (sizem).

本文轉自 曾哥最愛 51CTO部落格,原文連結:http://blog.51cto.com/zengestudy/1910618,如需轉載請自行聯系原作者