一个简单的防CC攻击Shell脚本分享_linux shell

实现代码:

复制代码 代码如下:

#!/bin/sh
cd /var/log/httpd/
cat access_log|awk '{print $1}'|sort|uniq -c|sort -n -r|head -n 20 > a
cp /dev/null access_log
cp /dev/null error_log
cp /dev/null limit.sh
cp /dev/null c
#awk '{print $2}' a|awk -F. '{print $1"."$2"."$3}'|sort|uniq > b
cat a|while read num ip
do
if [ "$num" -gt "20" ]
then
echo $ip >> c
fi
done
cat c|awk -F. '{print $1"."$2"."$3}'|sort|uniq > b
#cat c|sort|uniq > b
for i in `cat b`
#cat b|sed 's/\./ /g'|while read i1 i2 i3 i4
do
if `cat ourip |grep $i > /dev/null 2>&1`
then
echo "`date` $i" >> test
else
echo "iptables -I INPUT -p tcp -dport 80 -s $i.0/24 -j DROP" >> limit.sh
fi
done

使用方法,运行命令:sh limit.sh,这样就会把访问量过高的IP加入防火墙,并禁止访问

时间: 2024-09-29 08:59:33

一个简单的防CC攻击Shell脚本分享_linux shell的相关文章

一个简洁的全自动安装LNMP服务器环境的Shell脚本分享_linux shell

此脚本在生产服务器上使用了一年多,本脚本崇尚简单唯美,只需要一个脚本就可以在任何一台有网络的服务器上自动配置LNMP. 本脚本会在脚本执行目录下,建packages目录用于存放LNMP所需要的软件.大家安装完可以删除该目录. 使用方法: 1.把shell脚本的内容保存为nginx_php 2.root权限下运行: 复制代码 代码如下: chmod u+x nginx_php; ./nginx_php init; ./nginx_php ins_mysql-server; ./nginx_php

8个实用的Shell脚本分享_linux shell

几个Shell脚本的例子,觉得还不错. [例子:001]判断输入为数字,字符或其他 复制代码 代码如下: #!/bin/bash  read -p "Enter a number or string here:" input    case $input in     [0-9]) echo -e "Good job, Your input is a numberic! \n" ;;  [a-zA-Z]) echo -e "Good job, Your i

CentOS 6.x系统升级Python到2.7版本的Shell脚本分享_linux shell

在CentOS 6.x上,默认自带的Python是2.6.x版本,这个版本的Python有点老了,比如"collections.OrderedDict"就是2.7才有的,而且著名的Python Web框架Django的新版(如:1.7)就不支持Python2.6,最低要求是2.7了.而一些公司或者共有云上的服务器就是使用CentOS6.x,所以也就有了升级Python到2.7的需求. 升级Python之前,需要先安装一些工具和软件库,否则后面安装Python或pip时可能出错. Pyt

监控网站是否可以正常打开的Shell脚本分享_linux shell

最近刚好需要测试一下新建站的稳定性,所以写了个SHELL脚本放到本机(最近换了mac本),能够实时查看你需要监控的WEB页面状态,并发送到指定邮箱. 这里赞一下OS X自带有crontab计划任务,可以直接在本机测试脚本啦^_^ # vi check_web_alive.sh 复制代码 代码如下: #!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin export PATH # de

Linux下实现SSH免密码登录和实现秘钥的管理、分发、部署SHELL脚本分享_linux shell

环境: ssh server: 192.168.100.29  server.example.com ssh client: 192.168.100.30  client.example.com 通过root用户建立秘钥认证实现SHELL脚本管理,分发,部署 首先client端创建秘钥对,并将公钥分发给需要登录的SSH服务端 注:公钥相当于锁,私钥相当于钥匙,我们这里相当于在客户端创建一对钥匙和锁,想要做到SSH免密码登录,就相当于我们将锁分发到服务端并装锁,然后客户端就可以利用钥匙开锁. 一.

自己常用的一些shell脚本分享_linux shell

自己写了一下小的shell实例,虽然很小,但所有的大的程序都是由小的模块堆积起来的,程序员一定要懂得一种脚本的书写,而我,只会在linux下工作,所以就只能写linux的shell脚本了,呵呵,本文会陆续更新,给自己加油! 1.模拟linnux登录shell 复制代码 代码如下: #/bin/bash echo -n "login:" read name echo -n "password:" read passwd if [ $name = "cht&q

简单的远程FTP定时备份Shell脚本分享_linux shell

先说问题.公司现在有2台服务器,都是centos系统,一台本地(局域网),一台则在电信机房.因为工作需要,每天备份机房上的数据到本地,以前一直是FTP登录,然后下载到本地机器.现在则希望,利用本地的centos机器,自动备份到本地. 解决方法如下: 1.下载远程电信机房中机器上已打包好的数据.这个不难,一条语句搞定. 复制代码 代码如下: wget ftp://user_name:password@ip_address:port/dir/file_name 2.定时任务,需要写个脚本,并加入定时

一个监控Squid运行进程数并自动重启的简洁Shell脚本分享_linux shell

复制代码 代码如下: #!/bin/sh while sleep 30 do SquidNum=`ps -ef|grep squid|grep -v grep|wc -l` #HttpNum=`netstat -an|grep 0.0.0.0:80|grep -v grep|wc -l` #80状态 if [ $SquidNum != 3 ] ; then /etc/rc3.duid start adddate=`date +%Y-%m-%d`" "`date +%H:%M:%S` e

一键配置CentOS iptables防火墙的Shell脚本分享_linux shell

手里几台VPS配置iptables太繁琐,看到了朱哥的LNMP脚本里有一个自动配置iptables防火墙的脚本,借来改了一下,给需要的人用: 只提供常用端口的设置,如果你有特殊需求只需自行添加或减少相应的端口即可: 使用方法: 复制代码 代码如下: chmod +x iptables.sh ./iptables.sh 设置iptables开机自动启动: 复制代码 代码如下: chkconfig --level 345 iptables on 完整Shell: 复制代码 代码如下: #!/bin/