茫茫網海中的冷日
         
茫茫網海中的冷日
發生過的事,不可能遺忘,只是想不起來而已!
 恭喜您是本站第 1671508 位訪客!  登入  | 註冊
主選單

Google 自訂搜尋

Goole 廣告

隨機相片
WAVE_LS_SW_00006.jpg

授權條款

使用者登入
使用者名稱:

密碼:


忘了密碼?

現在就註冊!

小企鵝開談 : [轉貼]使用 logrotate 來管理及備份日誌檔

發表者 討論內容
冷日
(冷日)
Webmaster
  • 註冊日: 2008/2/19
  • 來自:
  • 發表數: 15771
[轉貼]使用 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/ (每日定時執行的設定目錄)
# cd /etc/periodic/daily

2. 編輯一個定時啟動的檔案及設定為可執行,假設檔名為 101.logrotate
# vi 101.logrotate

=> 加入以下內容並存檔
/usr/local/sbin/logrotate /usr/local/etc/logrotate.conf

=> 設為可執行
# chmod +x 101.logrotate

如此,以後只要時間一到 logrotate 就會自動備份你的日誌檔了..

● 參考資料

man logrotate

原文出處:小紅帽技術論壇 - [教學]使用 logrotate 來管理及備份日誌檔
前一個主題 | 下一個主題 | | | |

討論串




Powered by XOOPS 2.0 © 2001-2008 The XOOPS Project|