linux下shell处理nginx日志自动生成ip黑名单

#shell脚本处理nginx日志自动生成ip黑名单

##统计访问量前10名的ip并写入文件

#!/bin/bash
data=`date +%Y-%m-%d`
#统计访问量最高的前10ip
awk '{print $1}' '/PATH/'$data'.log' | sort -n |uniq -c | sort -rn | head -n 10 >>/PATH/ip10-$data.txt

##blackip.sh 判断ip访问次数是否超过限定值,是就加入黑名单中

#!/bin/bash
#获取当前日期
data=`date +%Y-%m-%d`
#blacklist目录要自己生成,然后新建个新的日期文件
echo "" > /usr/local/nginx/conf/blacklist/$data.conf
#循环读取每行ip10.sh生成的文件
for((i=1;i<=10;i++));
do 
#获取ip10.sh生成的文件每行数据的ip值和访问量值
list_num=$(sed -n $i'p' /PATH/tongji/ip10-$data'.txt' | awk '{print $1}')
list_ip=$(sed -n $i'p' /PATH/tongji/ip10-$data'.txt' | awk '{print $2}')
#判断每个ip的的访问值是否超过限制10000
if [ $list_num -gt 10000 ]
then
echo $list_num“大于10000”
#超过的就写入黑名单$data.conf里面,*这个文件在nginx.conf里面需要引入*
echo deny $list_ip';' >> /usr/local/nginx/conf/blacklist/$data.conf
else
echo $list_num"小于10000"
fi
done
#平滑重启nginx
nginx -s reload

在线观看视频更清楚

linux下自动化shell脚本生成nginx的ip黑名单

发布了26 篇原创文章 · 获赞 24 · 访问量 1969

猜你喜欢

转载自blog.csdn.net/wnw001/article/details/104474728