#!/bin/sh
#获取当前时间格式:yyyy-mm-dd
dd=`date +%F`
#日志文件路径
path=\'/logs/\'${dd}\'.log\'
#nginx 黑名单路径文件
nginx_path=/nginx/ips.conf
#获取ip出现次数按照降序排列并输出到文件
`grep \'[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\.[0-9]\{1,3\}\' $path -o | sort -k1,1nr | uniq -c | sort -k1,1nr > /ip/${dd}.text`
#ip列表文件
ip_path=/ip/$dd.text
#索引
ii=1
#ip出现次数
index=0
#ip写入次数
yx_line=0
for line in `cat $ip_path`
do
yu=$(( $ii % 2 ))
ii=`expr $ii + 1`
if [ $yu -eq 1 ] ; then
index=$(( $line + 0 ))
else
if [ $index -gt 50 ] ; then
ip=$line
ip_count=$(( `cat $nginx_path | grep -c $ip` ))
if [ $ip_count -eq 1 ] ; then
index=0
continue;
else
yx_line=`expr $yx_line + 1`
`echo \'deny \'$ip\';\' >> $nginx_path`
fi
index=0
fi
index=0
fi
done
# 如果有数据写入则重新加载 nginx
if [ $yx_line -gt 0 ] ; then
/etc/init.d/nginx reload
fi
相关文章:
- Nginx限制ip访问 2023-11-08
- nginx 限制ip访问 2023-11-08
- Nginx禁止ip访问或IP网段访问方法 2023-11-08
- nginx 禁止ip 或ip段访问 2023-11-08
- nginx 禁止某个IP访问 2023-11-08
- nginx限制ip访问(转) 2023-11-08