最近查看secure 日志发现有几个ip地址不正常 尝试连接登陆服务器,所以写如下脚本将连接fail次数过多的ip禁止其使用ssh 登陆到服务器

#!/bin/bash
#This is a host.deny Shell Script
#2013-08-24
cat /var/log/secure | awk '/Failed/{print $(NF-3)}' | sort | uniq -c | awk '{print $2 "=" $1;}' > /tmp/black_ip.txt
DEFINE=10
for i in `cat /tmp/black_ip.txt`
do
        IP=`echo $i | awk -F= '{print $1}'`
        NUM=`echo $i | awk -F= '{print $2}'`
        if [ $NUM -gt $DEFINE ]
        then
                grep $IP /etc/hosts.deny > /dev/null
                if [ $? -gt 0 ]
                then
                        echo "sshd:$IP" >> /etc/hosts.deny
                fi
        fi
done