|
統(tǒng)計(jì)web服務(wù)器每天客戶訪問量及每個(gè)時(shí)段的訪問量 前提:在這之前我每天到公司習(xí)慣性的統(tǒng)計(jì)一下昨天的總訪問量及每個(gè)時(shí)段的訪問量,今天突然想起能不能腳本的方式實(shí)現(xiàn)我想要的功能呢,經(jīng)過一上午的試驗(yàn),終于測試成功,寫了3種不同的方法,最后一種方法最簡單 第一種方法(這種方法不靈活,太機(jī)械了) read -p "請輸入要查詢的日志文件:" logFile if [ -e $logFile ];then all=`cat $logFile | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天訪問問的總?cè)藬?shù)為:$all" on0=`cat $logFile | grep "16/Jan/2016:00" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天0點(diǎn)訪問的人數(shù)有:$on0" on1=`cat $logFile | grep "16/Jan/2016:01" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天1點(diǎn)訪問的人數(shù)有:$on1" on2=`cat $logFile | grep "16/Jan/2016:02" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天2點(diǎn)訪問的人數(shù)有:$on2" on3=`cat $logFile | grep "16/Jan/2016:03" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天3點(diǎn)訪問的人數(shù)有:$on3" on4=`cat $logFile | grep "16/Jan/2016:04" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天4點(diǎn)訪問的人數(shù)有:$on4" on5=`cat $logFile | grep "16/Jan/2016:05" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天5點(diǎn)訪問的人數(shù)有:$on5" on6=`cat $logFile | grep "16/Jan/2016:06" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天6點(diǎn)訪問的人數(shù)有:$on6" on7=`cat $logFile | grep "16/Jan/2016:07" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天7點(diǎn)訪問的人數(shù)有:$on7" on8=`cat $logFile | grep "16/Jan/2016:08" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天8點(diǎn)訪問的人數(shù)有:$on8" on9=`cat $logFile | grep "16/Jan/2016:09" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天9點(diǎn)訪問的人數(shù)有:$on9" on10=`cat $logFile | grep "16/Jan/2016:10" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天10點(diǎn)訪問的人數(shù)有:$on10" on11=`cat $logFile | grep "16/Jan/2016:11" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天11點(diǎn)訪問的人數(shù)有:$on11" on12=`cat $logFile | grep "16/Jan/2016:12" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天12點(diǎn)訪問的人數(shù)有:$on12" on13=`cat $logFile | grep "16/Jan/2016:13" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天13點(diǎn)訪問的人數(shù)有:$on13" on14=`cat $logFile | grep "16/Jan/2016:14" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天14點(diǎn)訪問的人數(shù)有:$on14" on15=`cat $logFile | grep "16/Jan/2016:15" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天15點(diǎn)訪問的人數(shù)有:$on15" on16=`cat $logFile | grep "16/Jan/2016:16" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天16點(diǎn)訪問的人數(shù)有:$on16" on17=`cat $logFile | grep "16/Jan/2016:17" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天17點(diǎn)訪問的人數(shù)有:$on17" on18=`cat $logFile | grep "16/Jan/2016:18" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天18點(diǎn)訪問的人數(shù)有:$on18" on19=`cat $logFile | grep "16/Jan/2016:19" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天19點(diǎn)訪問的人數(shù)有:$on19" on20=`cat $logFile | grep "16/Jan/2016:20" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天20點(diǎn)訪問的人數(shù)有:$on20" on21=`cat $logFile | grep "16/Jan/2016:21" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天21點(diǎn)訪問的人數(shù)有:$on21" on22=`cat $logFile | grep "16/Jan/2016:22" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天22點(diǎn)訪問的人數(shù)有:$on22" on23=`cat $logFile | grep "16/Jan/2016:23" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天23點(diǎn)訪問的人數(shù)有:$on23" fi 第二種方法(通過for循環(huán)的方式) #!/bin/bash read -p "請輸入要查詢的日志文件:" logFile if [ -e $logFile ];then all=`cat $logFile | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天訪問的總?cè)藬?shù)為:$all人" for i in $(seq 0 23);do if [ $i -le 9 ];then on0=`cat $logFile | grep "16/Jan/2016:0$i" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天$i點(diǎn)訪問的人數(shù)有:$on0人" else on0=`cat $logFile | grep "16/Jan/2016:$i" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天$i點(diǎn)訪問的人數(shù)有:$on0人" fi done else echo "你輸入的文件不存在,請重新輸入!" fi 第三種方法(通過寫方法的方式來實(shí)現(xiàn),用的時(shí)候直接調(diào)用) #!/bin/bash function fileName() { all=`cat $logFile | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天訪問的總?cè)藬?shù)為:$all人" for i in $(seq 0 23);do if [ $i -le 9 ];then on0=`cat $logFile | grep "16/Jan/2016:0$i" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天$i點(diǎn)訪問的人數(shù)有:$on0人" else on0=`cat $logFile | grep "16/Jan/2016:$i" | cut -d' ' -f1 | sort -n | uniq -c | sort -n | wc -l` echo "今天$i點(diǎn)訪問的人數(shù)有:$on0人" fi done } read -p "請輸入要查詢的日志文件:" logFile if [ -e $logFile ];then fileName else echo "你輸入的文件不存在,請重新輸入!" fi |
|
|