2010-01-28 16:40:30
標籤:sed
nginx
awk
原始出處 、作者資訊和本宣告。否則將追究法律責任。
前幾天寫了篇文章是用awk 來過濾nginx 日誌裡面的特定值,但是光過濾出來了不行,還得要用啊,開發同事給我提出了新要求。讓我統計 9:30~13:30 和13:30~17:30的這兩個時間段每個小時的動態請求數,還有上面兩個時間段裡的 「
action=***xx」這個值的
種類和每種
action的數量~~~
說起來複雜其實做起來挺簡單的,只要理清思路就好了!讓我們先來解決第乙個問題,每小時的動態請求數,我再看下nginx日誌的格式
因為我們的動態請求都是通過php來完成的,所以我只要過濾出包含
.php的行就可以了,時間段的選取可以交給
sed來做,數量統計用
uniq -c ,好了開工吧!
sed -n "/2010:13:30:00/,/2010:17:30:00/"p access_2010011605.log | awk -f: '/'.'php/' |uniq -c
168576 13
301975 14
285616 15
299248 16
154377 17
下面我們再看看
09:30~13:30這段時間的 每種 action 的總和。
用awk來過濾nginx日誌中的特定值》已經寫好了,生成檔案的格式為
202.113.30.144 25/jan/2010:13:42:07 cuid=181188 action=compound
124.227.66.162 25/jan/2010:13:42:07 cuid=355287 action=plantinfo
124.240.39.49 25/jan/2010:13:42:07 action=researchlayer cuid=496990
121.236.118.126 25/jan/2010:13:42:07 cuid=509590 action=oreinfo
我們就根據這個格式來統計,上面我已經生成好了這個檔案名字叫 action.new
sed -n "/2010:09:30:00/,/2010:13:30:00/"p action.new |awk ' else if($4~/^action/)}' |sort |uniq -c |sort -nr
533271 action=plinfo
132742 action=friendpet
101258 action=info
98091 action=oinfo
84749 action=winfo
71751 action=result
71558 action=quest
63471 action=cquest
60886 action=qinfo
58112 action=bag
.....略
在這裡感謝下小i 同學的幫助
好了,把這幾個結果交給開發的同事讓他們去分析了。呵呵,希望這篇文章對朋友們有幫助~~~ o(∩_∩)o~
本文出自 「story的天空」 部落格,請務必保留此出處
用nginx來做負載均衡
以前用apache來做負載均衡比較繁瑣,又因為apache本身就是乙個web server,耗去沒有必要 的資源 也用apache tomcat整合分別來做靜態頁和jsp的server 最近看到很多 都在用 nginx,所以也小試牛刀了一把。為了防止複製session比較麻煩的方式 耗系統資源 我們...
用GOACCESS分析NGINX日誌
參考url 安裝goaccess 現在centos,好像可以直接安裝了 yum install glib2 glib2 devel geoip devel ncurses devel zlib zlib devel yum install goaccess 好像直接執行會有問題,最好在自己使用者主目...
用Nginx 和 uWSGI 來部署Django
週末趁著加班空閒,找了乙個舊機器,裝了個ubuntu13.04,以後就可以用它來做我在公司的git以及web伺服器,順便在它上面編譯一下android原始碼,哈哈,很爽。先說web系統,最進一直在搗鼓django,之前用apache2 apache2 python mod搭了乙個簡易版本的伺服器,用...