|
|
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已! |
|
恭喜您是本站第 1729937
位訪客!
登入 | 註冊
|
|
|
|
發表者 |
討論內容 |
冷日 (冷日) |
發表時間:2012/1/30 8:39 |
- Webmaster

- 註冊日: 2008/2/19
- 來自:
- 發表數: 15773
|
- [轉貼]使用 logrotate 來管理及備份日誌檔
- 做為一個系統的管理者,時時注意日誌檔是一個非常重要的工作。而日誌檔的備份工作也是個非常重要的,那麼在 FreeBSD 中有無自動備份日誌檔的軟體呢?
我們可以使用 /usr/local/sysutils/logrotate 來達到這個目的..
● logrotate 工作原理說明
1. logrotate 是配合 cron 來使用 2. 一般是以 daily (每日)來執行,可將定時執行的程序放在 /etc/periodic/daily/ 或是使用 crontab 來做 3. 在 logrotate 中我們可設定 daily weekly 或是 monthly 的時間間隔(可視日誌檔的大小及性質來設定) 4. 一般在 FreeBSD 中,有些日誌檔是自動備份的,如
‧console.log ‧cron ‧maillog ‧messages ‧wtmp .....
有些則不會自動備份及壓縮,其中最大的可能就是 httpd-access.log 這個檔案了。以下我們就以這個檔案做說明
● 安裝 logrotate
# cd /usr/ports/sysutils/logrotate/
# make install
安裝後會產生以下檔案
1. /usr/local/sbin/logrotate 這個執行檔 2. /var/lib/ 這個目錄,在這個目錄中執行 logrotate 後會產生一個 logrotate.status 的報告檔案 3. logrotate 的 man file,你可用 man logrotate 來看相關用法
● 語法設定
logrotate [-f] logrotate.conf
=> -f 一般是在測試時使用,代表 force 的意思 => logrotate.conf 代表其設定檔,這個一定要設定,檔名可自取,我們可在 /usr/local/etc/ 下設定這個檔案
● logrotate.conf 的設定說明
我們可將 logrotate.conf 放在 /usr/local/etc/ 目錄下,檔名取為 logrotate.conf 以利管理
一個典型的 logrotate.conf 如下:
errors root
compress
/var/log/httpd-access.log {
copytruncate
create 644 root wheel
weekly
rotate 7
uncompress
size=1000k
}
說明:
1. errors => 有錯誤時會 mail 一封信給 root 2. compress => 代表要使用 gzip 來壓縮 3. /var/log/http-access.log { .... } 代表一組設定 4. 在 {...} 外的表示內定值,如 compress 代表要透過 gzip 壓縮,但在 /var/log/httpd-access.log {....} 中,我們使用了 uncomress 則表示不壓縮 httpd-access.log 的備份檔 5. copytruncate => 先將日誌檔 copy 到另一個檔案儲存再清空 6. create ... => 產生一個新的 httpd-access.log 檔,644 root wheel 是這個檔案的權限設定 7. weekly 表示每個星期執行一次,另外尚有 daily 及 monthly 可用 8. rotate => 表示備份檔的數目,如 7 則最多會產生 1-7 個備份檔 9. uncompress => 不壓縮備份檔 10. size=1000k => 代表檔案大於 1000k 時就備份,另外也可使用 m
● 測試
# logrotate -f /usr/local/etc/logrotate.conf
過一會,應該會產生以下檔案
1. 在 /var/log/ 下產生 httpd-access.log.1 2. 新的(空的) httpd-access.log 3. 在 /var/lib/ 下產生一個 logrotate.ststus 的記錄檔
● 定時啟動你的 logrotate
1. 假設我們使用 /etc/periodic/daily/ (每日定時執行的設定目錄)
2. 編輯一個定時啟動的檔案及設定為可執行,假設檔名為 101.logrotate
=> 加入以下內容並存檔
/usr/local/sbin/logrotate /usr/local/etc/logrotate.conf
=> 設為可執行
如此,以後只要時間一到 logrotate 就會自動備份你的日誌檔了..
● 參考資料
man logrotate
原文出處:小紅帽技術論壇 - [教學]使用 logrotate 來管理及備份日誌檔
|
|
|
討論串
|