2008年3月25日 星期二

Webalizer, Cronolog, and Shell (Ubuntu)

July 16th, 2007

一切都只是為了自己的爽度!!XD

Webalizer是用來分析網站流量的軟體.

是由apache所產生的log檔來作分析.

而Webalizer是以月份存檔.所以log檔要有當月的紀錄.

使用apache內建產生log的方法不適用我的機器.

所以找了Cronolog作為產生log的方法!!

====== Cronolog 方面 ======

在Ubuntu上,修改/etc/apache2/sites-available/default, 加入:
CustomLog "|/usr/sbin/cronolog /var/log/apache2/%Y/%m/accwebalizer_%Y-%m-%d.log" combined
當apache啟動的時候就可以建立log啦!!

====== Webalizer 方面 ======

因為只能分析一個Log檔, 所以要將分析的檔(在此用accwebalizer.log)

跟一天所建立的log檔合併, 這時候就要寫成shell script來達成我的目的.

=== shell script (取名:lcwebalizer)===

首先因為日期是變動的, 而date指令必須取得昨天的日期.

getymd=`date --date="1 day ago" +%F` //取得昨天的日期, 格式: YYYY-MM-DD

gety=`date +%Y` //取得年份

getm=`date +%m` //取得月份

getd=`date +%d` //取得日

if [ "getd" == "01" ]; then //是否為每月的第1天!!

//作法先將上個月最後一天分析完. accwebalizer.log與accwebalizer_$getymd.log合併

//執行webalizer

//複製accwebalizer_$gety-$getm-$getd.log成為accwebalizer.log即可清空上個月的資料啦!!

else

//accwebalizer.log與accwebalizer_$getymd.log合併

//執行webalizer

fi

=== 解決 shell script ===

接下來就是webalizer在每天都自動執行啦!!

輸入. crontab -e

2 0 * * * lcwebalizer

每到0點兩分執行 lcwebalizer.

就可以達到Webalizer分析一個月的流量啦!!!

沒有留言: