美文网首页
Shell统计访问量

Shell统计访问量

作者: 赖赖魔的自留地 | 来源:发表于2016-10-25 16:52 被阅读0次

    昨天做了一个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 
    

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

    相关文章

      网友评论

          本文标题:Shell统计访问量

          本文链接:https://www.haomeiwen.com/subject/fqiruttx.html