Shell統(tǒng)計訪問量

昨天做了一個shell腳本,功能是統(tǒng)計車輛瀏覽日志文件中,單個車輛每月的瀏覽量。shell腳本以前也寫過不少,間隔的時間稍微一長,就忘個七七八八了,趁現(xiàn)在還記得,把這個腳本記下來!


車輛瀏覽日志

2016,10,17,15,43,47,124.114.150.138,939016062400100001532,10552003
2016,10,17,15,58,20,124.114.150.138,939016091400104306127,10502023
2016,10,17,16,03,16,124.114.150.138,939016091400104306182,10501011

腳本文件
source ~/.bash_profile

export SCRIPT=/usr/batch
export LOGPATH=/usr/LOG
export ENV_NM="test-pc"
#獲取上個月的年月信息,類似201609,因為日志文件以年月命名
month=`date -d "last month" +%Y%m`
logname=id."$month".log

#打開腳本目錄
cd $SCRIPT
#判斷日志文件是否存在
if [ -f "$LOGPATH/$logname" ]; then
    #awk使用逗號分隔文件的每行,并去掉重復,存入id.tmp文件
    cat $LOGPATH/$logname |awk -F "," '{print $8}'|sort -u > id.tmp

    echo $month "車輛統(tǒng)計信息" > result.txt
    #循環(huán)遍歷,在日志中查找車輛id的出現(xiàn)次數(shù),并將結(jié)果存入result.txt
    for i in `cat id.tmp`
    do
        count=`cat $LOGPATH/$logname |grep $i |wc -l`
        echo "車輛id"$i" 瀏覽量為 "$count" 次" >> result.txt
    done
    rm -f $SCRIPT/id.tmp
else
    echo "LOG file ERROR" > result.txt
fi

#打開日志目錄
cd $LOGPATH
#刪除一年前的日志文件
find -maxdepth 1 -mtime +365 -type f -name 'id.*.log' -exec rm {} \;

#如果日志文件是多個月份混合在一個文件當中,可以提取需要的月份產(chǎn)生需要的文件
#比如我想要今年9月份的就這樣
cat id.full.log |sed -rn '/2016\,09/p' > id.201609.txt 

以后學到新的知識點就記錄下來,希望可以堅持記錄~~~

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內(nèi)容