當我們的網頁上單擊一個連結或重新整理一下界面,那麼Apache在背景的日志檔案就會記錄一行或幾行資訊,如果你的網站有可觀的通路量,那麼一段時間之後你的Apache的日志檔案會變得及其臃腫不堪,當伺服器出現問題之後,在一個幾百兆甚至幾個G的日志檔案中找到有用的資訊會變得及其困難。是以我們就需要定期将足夠大的日志檔案分割成一個一個小日志,這就是日志輪替。日志輪替其實就是日志切割和日志輪換的結合0
日志切割:就是把舊的日志檔案移動并改名,同時建立新的日志檔案。那麼如何命名呢?
主要依靠/etc/logrotate.cof配置檔案的” dateext ”
1.如果配置檔案擁有“dateext”參數,那麼日志就會用日期來作為日志檔案的字尾,例如“access_log-20150517”。這樣的話日志檔案命就不會重疊,是以就不需要日志檔案改名啦。
2.如果配置檔案啊當中沒有“dateext”參數,那麼日志檔案就需要進行改名,當第一次日志輪替時麼目前的“access_log”日志會改名為“access_log.1”,讓後建立“access_log”檔案,當進行第二次日志輪替時“access_log.1”會改名為“access_log.2”,而“access_log”檔案會改名為“access_log.1”然後建立“access_log”檔案來儲存新的日志資訊。以此類推。
日志替換:當舊的日志超過儲存的範圍之後,就會删除時間最早的日志。
下面本文将以Apache距離進行日志輪替
注意:rpm包安裝的Apache是不需要進行輪替設定的,預設就開啟日志輪替,如果需要隻需修改參數即可。而源碼包安裝的Apache自帶的配置檔案隻支援日志切割,而沒有日志替換,不會删除舊的日志。這是就需要借助系統的日志輪替工具logrotate
logrotate的配置檔案是/etc/logrotate.conf這裡面記錄啦需要進行日志替換的日志檔案配置,我們隻需要在這個檔案中将Apache的日志檔案寫入這個配置檔案即可;

内容詳解
/usr/local/apache/logs/access_log {
#Apache日志檔案的絕對路徑
daily
#日志輪替的周期是天
dateext
#使用日期做日志檔案的字尾名
notifempty
#如果日志檔案為空将不進行輪替
rotate 30
#保留的日志檔案個數。如果寫0是是指沒有備份
}
儲存退出
上述設定完成後Apache的日志檔案就會進行輪替
logrotate配置檔案參數:
daily
日志的輪替周期是每天
weekly
日志的輪替周期是每周
monthly
日志的輪替周期是每月
rotate
數字保留的日志檔案的個數。0指沒有備份
compress
日志輪替時,舊的日志進行壓縮
create mode owner group
建立新日志,同時指定新日志的權限與所有者和所屬組。如create0600 root utmp
mail address
當日志輪替時,輸出内容通過郵件發送到指定的郵件位址。如mail [email protected]
missingok
如果日志不存在,則忽略該日志的警告資訊
notifempty
如果日志為空檔案,則不進行日志輪替
minsize
大小日志輪替的最小值。也就是日志一定要達到這個最小值才會輪替,否則就算時間達到也不輪替
dateext
使用日期作為日志輪替檔案的字尾。如secure-20130605
sharedscripts
在此關鍵字之後的腳本隻執行一次
prerotate/endscript
在日志輪替之前執行腳本指令。endscript标示prerotate腳本結束。
postrotate/endscript
在日志輪替之後執行腳本指令。endscript标示postrotate腳本結束
logrotate指令介紹
logrotate [選項] 配置檔案名
選項:如果沒有選項将按照配置檔案中的内容進行日志輪替
-v: 顯示日志輪替過程
-f: 強制進行日志輪替,不管啊日志輪替的條件是否符合,強制配置檔案中所有的 日志進行輪替
配置檔案一般都是/etc/logrotate.conf檔案