Shell统计访问量

昨天做了一个shell脚本,功能是统计车辆浏览日志文件中,单个车辆每月的浏览量。shell脚本以前也写过不少,间隔的时间稍微一长,就忘个七七八八了,趁现在还记得,把这个脚本记下来!


车辆浏览日志

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 "车辆统计信息" > result.txt
    #循环遍历,在日志中查找车辆id的出现次数,并将结果存入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 {} \;

#如果日志文件是多个月份混合在一个文件当中,可以提取需要的月份产生需要的文件
#比如我想要今年9月份的就这样
cat id.full.log |sed -rn '/2016\,09/p' > id.201609.txt 

以后学到新的知识点就记录下来,希望可以坚持记录~~~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容