服务器压缩日志中统计接口访问IP

#!/bin/bash

#获取当前脚本目录
curPath=$(cd $(dirname $0); pwd)
#临时文件
resultPath=$curPath"/findxxxresult111.txt"

rm -f $resultPath

findIp() {
    #grep -a "${2}" 中的${2}是函数传进来的要查找的关键字
    #awk ’{print $4}‘ 中的$4指ip所在列
    zcat ${1} | grep -a "${2}" | awk '{print $4}' | sort | uniq | sort -nr >> $resultPath
}

#sell命令传进来的第一个参数,即要查找的接口关键字
findStr=$1

#查找9、10、11、12月
for M in {"09","10","11","12"};do
	for ((d=1;d<32;d++));do
	day=$d
	if [[ $d -lt 10 ]]
	then
	    day="0"$d
	fi
	readDate="2021-"$M"-"$day
	dirName="./"$readDate
	if [[ -d ${dirName} ]];then
	    cd $dirName
            fileName="./info.log."$readDate".tar.gz"
	    findResult=$(findIp $fileName $findStr)
	    cd ../
	fi
    done
done

#去重
uniq $resultPath
#删除临时文件
rm -f $resultPath

版权声明:本文为lbmlyac原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。