先分享一个简单的访问异常的脚本: #!/bin/bash #Writer:lin_credible@163.com #---------------10分钟内访问超过600次的访问IP--------------------------- #+ 这个10分钟来得不严谨! #----------------------------------------------------------------------- if [ $# -ne 1 ] #命令参数 then echo "Wrong Enter!" echo "Usage: `basename $0` logs_file's_path" exit 1 fi if [ ! -e $1 ] then echo "The log_file is not exists!" exit 1 fi #----------------------------------------------------------------------- date_now=`date +%d/%b/%Y:%H:%M` date=`date -d "10 minute ago" +%d/%b/%Y:%H:%M` date1=${date%[0-9]} cat $1 |grep "$date1"| awk '{print $3}'|sort|uniq -c|sort -nr|awk '{if($1 > 30) print $2}'> ip_list_10minute.txt while read a do arr[x++]="${a}"; done < ip_list_10minute.txt j="${#arr[@]}" if [ $j -gt 0 ] then echo "10分钟内访问数超过600次的ip列表如下" >> bad_ip_list.txt else exit 0 fi for (( i=$(( $j - 1 ));i>=0;i-- )) do echo "${date_now} ----> IP: ${arr[$i]}" >> bad_ip_list.txt cat $1|grep -E "\s${arr[$i]}\s"|sort -nr|awk 'NR==1{print $0}' >>bad_ip_list.txt echo " " >>bad_ip_list.txt done send_mail() { while (( $# > 0 )) do mail -s "web访问报警" $1@163.com < bad_ip_list.txt shift done } #send_mail lin_credible xxx yyy zzz send_mail lin_credible rm -rf bad_ip_list.txt rm -rf ip_list_10minute.txt
Linux下 自动屏蔽DDOS攻击者IP DDoS deflate
链接限制的iptables规则:
#iptables -I INPUT -p tcp –dport 80 -m connlimit –connlimit-above 10 -j REJECT
PS:如果相关站点做了CDN加速的,上面的TCP是不成的!为什么?可以看笔者转载的有关CDN的博文!到时候会将CDN的链接杀死的!
Password:
(设置root用户的密码)
(输入之前设置的密码就行了)
个人电脑,windows7的64位系统,IIS7.0,在IIS上新建了三个站点,分别使用三个应用程序池。
新建M2站点后访问报错,提示mySql.Data.dl文件未能成功加载。
事故原因IIS报错的原因很多,这里只是记录其中的一种可能性!不过只要操作规范,一般都不会有很莫名其妙的问题。以前看冯大辉的blog,非常认同大师说的一句话,大意是:好的数据库都是严格按照标准操作维护的,不按标准操作的数据库会出现很多莫名其妙的问题。
以前在本机IIS上发布站点,基本都不会出现问题,这次发布怎么会出现DLL文件无法加载的问题呢?
在VS环境下重新编译了文件,并且在VS环境测试了站点程序,能正常访问,重新部署到IIS后,依然报错。
各种百度、google,但是大伙都知道,未能加载文件或程序集,这种问题10000个人遇到的可能是10000中不同的情况,所以基本上帮助不大,但是总结下来,DLL无法加载的问题总结下来情况有一下几种:
1、文件不存在,例如应用程序需要加载Office的组件,但是机器环境没有安装Office,会报错;
2、文件存在,但是加载文件时路径错误;
3、某个DLL依赖于另外的DLL;
4、DLL文件需要注册
5、......
仔细检查了网站程序所有涉及到出问题的DLL的环节,确定没有问题;
焦躁了两个小时,最后也不知道怎么想起,本机前阵子刚从windows7的32版本升级到windows7的64版本,但是下载的MySQL.Data.DLL是32位的版本,重新检查网站程序的编译版本,使用的Any CPU编译的,是否可能由这个原因造成?
解决方案winform的程序在编译时是需要注意DLL的版本问题的,网站程序是否也会出现这个问题?在百度搜索了下关于IIS应用程序的版本问题,果然发现问题,IIS默认新建的应用程序池是不允许使用32位应用程序的,需要在IIS应用程序池修改;
好吧,先尝试在IIS修改,IIS——>应用程序池——>"你的Web程序使用的应用程序池"——>高级设置,打开如下对话框
修改“启用32位应用程序”为True,确定后刷新IIS的Web应用程序,重新访问,正常!
这里确定了问题是因为DLL的版本问题引发,所以重新下载MySQL.Data.DLL的64版本,也可以解决问题!