美文网首页
统计访问日志每5min带宽情况

统计访问日志每5min带宽情况

作者: 小王同学123321 | 来源:发表于2019-11-07 16:59 被阅读0次

该脚本用户计算某个工具格式的访问日志,给定时间间隔内的带宽情况

#!/bin/bash
#-*- coding:utf-8 -*-

#该脚本用户计算某个工具格式的访问日志,给定时间间隔内的带宽情况
>result
log_file="log.file"    #定义一个临时日志文件

date="$1"   #开始时间作为运行脚本的第一个参数 
starttime=$(date -d "$date" +%s)    #将输入的时间转换为时间戳
duration="$2"    #时间间隔的描述作为运行脚本的第二个参数
let endtime=${starttime}+${duration}
DATE=$(echo $date |awk '{print $1}')
zcat /data/.../access/*${DATE}* |awk -v "s_time=${starttime}" -v "e_time=${endtime}" '{if ($1 >= s_time && $1 <= e_time) print}' > ${log_file}    #将日志文件全部解压放在临时文件中,这块有个银行问题,需要解压的文件过大会造成占用设备内存过多


function run(){
    duration=$1
    while [[ $starttime < $endtime ]];do
        let end_time=${starttime}+${duration}
        real_date=$(date -d @${starttime} +"%Y%m%d%H%M")
        cat ${log_file} |awk -v "s_time=${starttime}" -v "e_time=${end_time}" '{ if ($1 >= s_time && $1 < e_time) print }' |awk -v time="${real_date}" '{num[$4]++}END{for(i in num) print time,num[i],i}' |sort -k2 -nr >> result
        starttime=${end_time};
    done < ${log_file}
    }

run duration

相关文章

网友评论

      本文标题:统计访问日志每5min带宽情况

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