0%
logrotate
- logrotate - rotates, compresses, and mails system logs
logrotate 的設定
- Linux系統預設安裝logrotate工具,它預設的配置檔案在:
- /etc/logrotate.conf
- /etc/logrotate.d/
- Logrotate 是基於 cron 來執行的
- restart service: `sudo /usr/sbin/logrotate -v /etc/logrotate.conf
切割介紹
- 比如以系統日誌/var/log/message做切割來簡單說明下:
- 第一次執行完rotate(輪轉)之後,原本的messages會變成messages.1,而且會製造一個空的messages給系統來儲存日誌;
- 第二次執行之後,messages.1會變成messages.2,而messages會變成messages.1,又造成一個空的messages來儲存日誌!
- 如果僅設定保留三個日誌(即輪轉3次)的話,那麼執行第三次時,則 messages.3這個檔案就會被刪除,並由後面的較新的儲存日誌所取代!也就是會儲存最新的幾個日誌。
- 日誌究竟輪換幾次,這個是根據配置檔案中的dateext 引數來判定的。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18
| # cat /etc/logrotate.conf # 底下的設定是 "logrotate 的預設值" ,如果別的檔案設定了其他的值, # 就會以其它檔案的設定為主 weekly //預設每一週執行一次rotate輪轉工作 rotate 4 //保留多少個日誌檔案(輪轉幾次).預設保留四個.就是指定日誌檔案刪除之前輪轉的次數,0 指沒有備份 create //自動建立新的日誌檔案,新的日誌檔案具有和原來的檔案相同的許可權;因為日誌被改名,因此要建立一個新的來繼續儲存之前的日誌 dateext //這個引數很重要!就是切割後的日誌檔案以當前日期為格式結尾,如xxx.log-20131216這樣,如果註釋掉,切割出來是按數字遞增,即前面說的 xxx.log-1這種格式 compress //是否通過gzip壓縮轉儲以後的日誌檔案,如xxx.log-20131216.gz ;如果不需要壓縮,註釋掉就行 include /etc/logrotate.d # 將 /etc/logrotate.d/ 目錄中的所有檔案都載入進來 /var/log/wtmp { //僅針對 /var/log/wtmp 所設定的引數 monthly //每月一次切割,取代預設的一週 minsize 1M //檔案大小超過 1M 後才會切割 create 0664 root utmp //指定新建的日誌檔案許可權以及所屬使用者和組 rotate 1 //只保留一個日誌. } # 這個 wtmp 可記錄使用者登入系統及系統重啟的時間 # 因為有 minsize 的引數,因此不見得每個月一定會執行一次喔.要看檔案大小。
|
logrotate config file
1 2 3 4 5 6 7 8 9 10
| # sample logrotate configuration file compress
/var/log/messages { rotate 5 weekly postrotate /usr/bin/killall -HUP syslogd endscript }
|
compress
- Old versions of log files are compressed with gzip(1) by default. See also nocompress.
compresscmd
- Specifies which command to use to compress log files. The default is gzip. See also compress.
uncompresscmd
- Specifies which command to use to uncompress log files. The default is gunzip.
reference