原本用來跑cacti的VM只割了4G的硬碟給他,而VMware Workstation又好像不能動態調整硬碟大小,又懶得新增一個硬碟給VM,就找了一下到底罪魁禍首是誰,結果就是cacti的log檔,足足有1.1G那麼大,於是便想說把他加入 logrotate 的服務內讓他定期去壓縮吧,其實也沒在看 cacti 的 log 檔... :tongue:



首先,先來設定 /etc/logrotate.conf 這個檔案
# rotate log files weekly
weekly
>> 設定每週執行一次 logrotate

# keep 4 weeks worth of backlogs
rotate 4
>> 只保留四週的 log 檔案

# create new (empty) log files after rotating old ones
create
>> 建立新的 log 檔案以便繼續紀錄 log
# uncomment this if you want your log files compressed
compress
>> 將 compress 參數打開,讓 logrotate 自動壓縮 log 檔以節省空間

# RPM packages drop log rotation information into this directory
include /etc/logrotate.d
>> logrotate 程式會到這個目錄底下執行裡面所有檔案

這個 conf 檔案設定好了之後,我就在 /etc/logrotate.d/ 底下建立一個 cacti 的設定檔,內容如下:
/var/www/cacti/log/cacti.log {
missingok
notifempty
create 0644 root root
}

第一行是指定 logrotate 到哪個路徑去抓哪個 log 檔案;而 missingok 參數指的是如果找不到這個 log 檔案,就忽略過去,繼續執行下一個 logrotate 工作;notifempty則是設定說如果這個 log 檔案是空的,那就不要執行 logrotate 的動作;最後的 create 則是讓 logrotate 知道如果 log 檔案壓縮完了之後,該建立一個新的 log 檔案,並且設定權限與擁有者。大致上設定這幾個簡單的參數就可以運作了,對了!要注意的是,系統是不是有跑 crond 的服務起來,因為 logrotate 是設定在 crond 的服務之下的,所以如果 crond 沒跑起來,那 logrotate 也就不會動作囉,要確定 logrotate 是不是有加入到 crond 的排程中,可以去 /etc/crontab 這個檔案或者是到 /etc/cron.daily/ 這個目錄底下來看看是不是有 logrotate 這個程序。

都檢查過了之後,可以執行 logrotate -vf /etc/logrotate.conf 來強制跑看看 logrotate.conf 這個設定檔,如果沒有出現錯誤的話,那麼我剛剛所設定的 /var/www/cacti/log/ 底下應該會產生一個新的壓縮檔,這個壓縮檔就是舊的資料壓縮而成的,而新的 log 檔案應該也會建立出來,並且是空白的檔案。

簡單的說明差不多就是這樣囉,其實這樣也差不多夠用了,如果要看更詳細的設定與解說請參考鳥哥的Linux,我是參考 認識登錄檔 這篇的設定的。

Linux, logrotate, cacti, vmware
文章標籤
全站熱搜
創作者介紹
創作者 mattchen 的頭像
mattchen

痞子麥

mattchen 發表在 痞客邦 留言(0) 人氣(2,165)