close

按此前往linux完整教學目錄

 

 

登錄檔輪替(logrotate)

隨著使用者在系統上所做的事情越來越多,登錄檔中所記錄的訊息也會越來越多,當然也就增加了登錄檔的容量大小。因登錄檔寫入的機會很頻繁,故因檔案太大導致的讀寫效率不彰也會很明顯,而主機若太常讀寫一個大檔案,也可能加快硬碟的耗損。所以,從登錄檔被建立開始、經過一段週期時間後,系統就需要自動進行登錄檔輪替」以解決上述問題。

登錄檔輪替,就是將原先的登錄檔改名(在檔名後面加個數字),譬如/var/log/XXX這個登錄檔改名為/var/log/XXX.1(也可能改名後再將檔案壓縮,故在數字之後還加了壓縮檔的副檔名),然後建立一個名為/var/log/XXX的新空白登錄檔,以後所有的訊息自然就寫在這個新空白登錄檔,而不去寫入/var/log/XXX.1這個大檔案。當又經過一段週期時間後,就再進行一次登錄檔輪替。如下圖所示:

image

總之,重點是:

※ 無論何時,訊息只記錄在當時的/var/log/XXX登錄檔。

/var/log/XXX.N這種登錄檔,N這個數字越大,代表是時間越久之前的登錄檔。

(1) 登錄檔輪替的相關設定:

登錄檔輪替的相關設定,即是設定輪替執行的條件,與輪替時是否執行某些指令等等。可以為每個登錄檔做個別的設定,也可以統一為每個登錄檔做設定。

※ 要注意:若某個登錄檔的個別設定之設項目,與統一設定的設定項目相互衝突,則以個別設定的設定項目為準。

※ 如果有些設定項目,在個別設定中沒有設定,則以統一設定為準。

通常,負責統一設定的檔案是/etc/logrotate.conf,而負責每個登錄檔之個別設定的檔案則位於/etc/logrotate.d/這個目錄底下。其語法是一樣的:

(1-1) 針對個別登錄檔設定,其語法架構為:

登錄檔路徑

{

設定項目

}

(1-2) #符號後面的文字為「註解」。無任何實際效果。

(1-3) 一個設定項目佔一行,常用的設定項目如下:

各設定項目的值

各設定項目的意義

daily:表示每天輪替一次。

weekly:表示每周輪替一次。

monthly:表示每月輪替一次。

進行輪替的週期時間

 

minsize N單位

N是數字。表示登錄檔的容量若到了一定大小(也就是N單位的大小),就要進行輪替,並不以時間週期來做輪替。

單位可為K(表示Kb)M(表示Mb)G(表示Gb)

compress

表示在輪替時,要將登錄檔進行壓縮之後再改名。

rotate N

表示僅保留N個改名後的登錄檔。意即/var/log/XXX.N在進行輪替後,會被刪除。

sharedscripts

prerotate

指令

endscript

表示在執行輪替時,要先執行指令,再進行輪替。

sharedscripts

postrotate

指令

endscript

表示在輪替完畢之後,就要執行指令

(2) 實際執行登錄檔輪替:

使用指令: logrotate 選項 登錄檔設定檔

其中,選項有:

※ 無選項:在輪替條件達成的情況下才會執行輪替。

-v:顯示輪替在執行時的過程。

-f:不管輪替的條件有無達成,強制執行輪替。

範例如(本範例在ubuntu系統下)logrotate -vf /etc/logrotate.d/rsyslog

可立即執行系統登錄檔的輪替,並顯示出輪替的過程。

 

 

上一篇:linux 登錄檔內容

下一篇:linux 管理登錄檔的技巧

arrow
arrow
    創作者介紹
    創作者 埃伯 的頭像
    埃伯

    程式語言教學

    埃伯 發表在 痞客邦 留言(0) 人氣()