一、日誌切割
安裝cronolog
centos 5.4中編譯安裝apache預設日誌是不切割的,需要用用工具cronnolog進行日誌切割
wget
tar zxvf cronolog-1.6.2.tar.gz
cd cronolog-1.6.2
./configure
make && make install
2.用which命令檢視路徑驗證安裝
which cronolog
預設路徑為:/usr/local/sbin/cronolog
3.配置
customlog 「|/usr/local/sbin/cronolog /usr/local/apache/logs/access_%y%m%d.log」 combined 定義訪問日誌
errorlog 「|/usr/local/sbin/cronolog /home/www/ex/log/error_%y%m%d.log」 定義錯誤日誌
二、還有另外一種使用rotatelogs 方法:
linux系統配置方法:
將其改為
安裝了apache就會有rotatelogs的。
windows系統下配置方法:
#errorlog "|bin/rotatelogs.exe logs/error-%y%m%d.log 86400 480"
#customlog "|bin/rotatelogs.exe logs/access-%y%m%d.log 86400 480" common
二、apache日誌切割
輯apache的主配置檔案,更改內容如下:
注釋掉如下兩行
errorlog logs/error_log
customlog logs/access_log common
然後新增如下兩行
errorlog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/errorlog.%y-%m-%d-%h_%m_%s 2m +480"
customlog "|/usr/local/apache/bin/rotatelogs /usr/local/apache/logs/accesslog.%y-%m-%d-%h_%m_%s 2m +480" common
意義如下:
errorlog.%y-%m-%d-%h_%m_%s為生成日誌的格式,類似於這樣:errorlog.2010-04-15-11_32_30 ,以年月日時分秒為單位的,
2m 為日誌的大小,即為日誌達到多大後生成新的日誌檔案,支援的單位為k,m,g,本處為2m
+480 為時差,檔案的時間為美國時間,中國的時差要比美國多8個小時也就是480分鐘,所以要加上480分鐘
還有其他的設定方法如下:
每天生成乙個錯誤日誌檔案
errorlog "|bin/rotatelogs.exe -l logs/error-%y-%m-%d.log 86400"
其中86400為輪轉的時間單位為秒
參考:參考:
rotatelogs - 滾動apache日誌的管道日誌程式
rotatelogs是乙個配合apache管道日誌功能使用的簡單程式。舉例:
customlog "|bin/rotatelogs /var/logs/logfile 86400" common
此配置會建立檔案"/var/logs/logfile.nnnn",其中的nnnn是名義上的日誌啟動時的系統時間(此時間總是滾動時間的倍數,可以用於cron指令碼的同步)。在滾動時間到達時(在此例中是24小時以後),會產生乙個新的日誌。
customlog "|bin/rotatelogs /var/logs/logfile 5m" common
此配置會在日誌檔案大小增長到5兆位元組時滾動該日誌。
errorlog "|bin/rotatelogs /var/logs/errorlog.%y-%m-%d-%h_%m_%s 5m"
此配置會在錯誤日誌大小增長到5兆位元組時滾動該日誌,日誌檔名字尾會按照如下格式建立:errorlog.yyyy-mm-dd-hh_mm_ss 。
語法rotatelogs [ -l ] logfile [ rotationtime [ offset ]] | [ filesizem ]
選項-l
使用本地時間代替gmt時間作為時間基準。注意:在乙個改變gmt偏移量(比如夏令時)的環境中使用-l會導致不可預料的結果。
logfile
它加上基準名就是日誌檔名。如果logfile中包含"%",則它會被視為用於strftime()的格式字串;否則它會被自動加上以秒為單位的".nnnnnnnnnn"字尾。這兩種格式都表示新的日誌開始使用的時間。
rotationtime
日誌檔案滾動的以秒為單位的間隔時間。
offset
相對於utc的時差的分鐘數。如果省略,則假定為"0"並使用utc時間。比如,要指定utc時差為"-5小時"的地區的當地時間,則此引數應為"-300"。
filesizem
指定以filesizem檔案大小滾動,而不是按照時間或時差滾動。
可移植性
下列日誌檔案格式字串可以為所有的strftime()實現所支援,見各種擴充套件庫對應的strftime()的手冊。
%a 星期名全稱(本地的)
%a 3個字元的星期名(本地的)
%b 月份名的全稱(本地的)
%b 3個字元的月份名(本地的)
%c 日期和時間(本地的)
%d 2位數的乙個月中的日期數
%h 2位數的小時數(24小時制)
%i 2位數的小時數(12小時制)
%j 3位數的一年中的日期數
%m 2位數的分鐘數
%m 2位數的月份數
%p am/pm12小時制的上下午(本地的)
%s 2位數的秒數
%u 2位數的一年中的星期數(星期天為一周的第一天)
%w 2位數的一年中的星期數(星期一為一周的第一天)
%w 1位數的星期幾(星期天為一周的第一天)
%x 時間(本地的)
%x 日期(本地的)
%y 4位數的年份
%y 2位數的年份
%z 時區名
%% 符號"%"本身
Apache日誌分割指令碼
產生背景 隨著公司的ntp中心伺服器訪問越來越大,access日誌也是日益增加,原有的日誌沒有進行切割,單個日誌文過大 最大的有3.7g 若清理磁碟空間會將訪問日誌整個刪除,這樣會丟失很多重要的資訊,因此對日誌進行切割是很有必要的,這樣若日後檔案過多,也可以刪除歷史檔案。指令碼 將指令碼加入到cro...
nginx日誌分割
以下這個指令碼實施的核心是 每天凌晨將日誌檔案壓縮並移動到相應的年份月份目錄下,然後重新生成日誌檔案,同時記錄日誌 bin bash logs path home wwwlog 日誌存放位置 year date y 年份 month date m 月份 day date y m d 日期 time ...
linux cronolog分割日誌
1 日誌分割設定 apache的日誌分割要借助於目前國際上最流行 最通用的日誌分割工具cronolog。日誌輪循工具cronolog,已經是比較的相當成熟,在不中斷apache伺服器的情況下,它能嚴格的按每一天00 00 00 23 59 59來實現日誌檔案的分割,同時不受apache伺服器重啟的影...