linux 查看日志文件 封禁今日请求过多的ip

  • Post author:
  • Post category:linux


查今日日志文件禁ip

主要内容为:(封禁ip脚本处理 在最下方)

1、查看今日请求服务ip次数大于19次的ip(防止误封自己)

2、 查出的ip和厉害保存的ip对比,拿出新增加的ip

3、对ip进行处理,执行封禁ip脚本处理

4、写入封禁ip文件,并写入日志

#!/bin/bash

DATE=$(date +%Y/%m/%d%t%H:%M:%S)
DayTime=$(date +%Y/%m/%d)

if [ ! -f ip.log ]
then
    touch  ip.log
fi


ipStr=""
function getIpStr(){
echo $ipStr
    while read lineIp
    do
      ipStr=${ipStr}${lineIp}" "
   done <  add_ip.log
}

cat /var/log/nps.log |grep ${DayTime} |grep "port 22"| awk '{print $12}'|awk -F[:" "]+ '{print $1}'|sort | uniq -c |awk '{if ($1  > 19) {print $2} }' > tmp_ip.log &&
[ -s tmp_ip.log ] &&
echo "比对历史数据" &&
grep -v -f ip.log tmp_ip.log > add_ip.log &&
[ -s add_ip.log ] &&
echo "增加过滤ip内容" && getIpStr && sh ~/ip_deny.sh ${ipStr} &&
cat add_ip.log >> ip.log &&
echo -e "\n====>记录时间: "${DATE}"<<====" >> log_ip.log &&
cat add_ip.log >> log_ip.log &&
#rm -f  tmp_ip.log &&
echo "ip处理完成"

ip_deny.sh  (ip封禁脚本)

#!/bin/bash

echo "-- \$* 封禁ip操作 ---"
for i in "$@"; do
    iptables -I INPUT -s $i -j DROP
    echo "封禁ip:"$i
done



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