E pentru uz personal.

while [ true ]; do     for i in $(tail -n 50 access.log | grep 'GET / HTTP/1.' | awk '{print $1}' | uniq -c | sort -rn | head | sed 's/s/_/g' | sed 's/^_*//g'); do         n=$(echo $i | cut -d_ -f1);         if [ $n -ge "3" ]; then             dos=$(echo $i | cut -d_ -f2);             if [ -z $(cat /tmp/dos | grep $dos | head -n 1) ]; then                 echo $dos >> /tmp/dos;                 echo $dos                 iptables -I INPUT -s $dos -j DROP;             fi;         fi;     done;     sleep 10; done