Articles of DOS

如何通过parsingnginx日志文件来自动拒绝ip地址

我有4个Web服务器在cloudflare和loadbalancer后面,nginx是web服务器,php-fpmpipe理php页面。 我不知道如何阻止一个简单的DOS攻击… 我可以使用nginx中的http_limit_req模块来检测这种攻击http://wiki.nginx.org/HttpLimitReqModule 但是这根本没有阻止攻击,是的,这可以减轻,但networking服务器被击中,再次打,php-fpm达到80%,在一分钟内,网站无法访问。 我试图find一种方法来阻止这种请求。 我知道如何使用nginx阻止某个ip地址或某个useragent,但我想自动执行此操作。 我认为我不能用iptables阻止ip,因为请求来自负载均衡器:(但是我仍然能够用set_real_ip_from和real_ip_header X-Forwarded-For用nginx检测正确的IP地址。 我有日志文件(error.log)填写正确的IP地址,你可以看到: 2012/03/27 18:34:02 [error] 31234#0:* 1283按区域“暂存”限制连接,客户端:XX.XX.XX.XXX,服务器:www.xxxxxxx.com,请求:“HEAD /它HTTP / 1.1“,主机:”www.xxxxxxx.com“ 有人有一个想法,可以教我如何自动阻止这个IP?

在Perl中添加默认的系统换行符

当我将文本追加到文件中时,我想为文件添加正确的结束行:对于Unix: "\n"和Windows "\r\n" 。 但是,我找不到一个简单的方法来做到这一点。 这是我能想到的最好的: use strict; use warnings; use Devel::CheckOS (); my $fn = 'file'; open (my $fh, '<', $fn) or die "Could not open file '$fn': $!\n"; my $first_line = <$fh>; my $len = length $first_line; my $file_type = "undetermined"; if ($len == 1) { $file_type = "Unix" if $first_line eq "\n"; […]

有没有人得到在Linux Wine的MASM汇编语言工作?

显然WIne不支持16位DOS应用程序。 任何人都知道如何获得MASM英特尔风格的assembly工作?

如何用dos批处理删除文件中的Ctrl-Z

我发现每次我把所有的文件连接成一个文件 copy *.txt all.txt ,在文件末尾有一个Ctrl-Z字符。 我不想要这个angular色。 有没有办法写一个批处理脚本来删除这个字符或避免这种情况发生? 我想要做的是 cat *.txt > all.txt 在Linux中。

在Ubuntu中以新用户身份运行脚本时的Shell问题

当我通过SSHlogin到特定的Ubuntu Linux(10.04 64位)主机时,我得到一个bash shell。 从这里我能够运行一个特定的Python脚本,并设置了可执行的位,将其作为第一行: #!/usr/bin/env python 但是,如果另一个(新)用户通过SSHlogin到同一台主机,并尝试运行此脚本(或其副本),则会出现此错误: $ ./script.py : No such file or directory 事实certificate,这个文件实际上是一个DOS行结束的文件,但我可以从我的login运行这很好。 如果我把它转换成UNIX格式,那么其他人也可以正常运行。 如果我们用“python”作为前缀,脚本也可以正常运行,不pipeDOS / UNIX格式如何: $ python ./script.py blah blah blah… 除此之外,一旦脚本转换为UNIX格式,其他用户可以运行它,它仍然不能从一个Makefile运行 – make显示与上面相同的错误。 我读过/ bin / sh是Ubuntu中的'dash'(而不是'bash')shell,我想知道这是否与此有关,因为它的行为与bash不同。 如果是这样,我想知道我的login(这是完美的,已经做了多年)和这个新的用户的login显示各种奇怪的行为之间的区别是什么。 从哪里开始寻找? 另外也许是相关的 – 新用户是由类似的服务(一个Active Directory集成客户端)自动创build的,这个服务可能以某种方式错误地configuration了新用户。 我也尝试将第一行改为#!/ usr / bin / python,没有区别。 两个用户都在运行bash shell作为他们的loginshell。

为什么在用Meld修改后将^ M添加到script.r中?

尊敬的Meld和Emacs / ESS用户, 我做了什么: 使用Emacs / ESS创build一个script.r。 通过从another_script.r中提取一些代码来对script.r进行一些修改 在Emacs / ESS中重新打开another_script.r(或script.r)以继续工作。 another_script.r中所有未被推送到script.r的行以^ M结尾 有些时候是相反的 – 只有被推/拉的线以^ M结尾。 到目前为止,我还没有确切地确定哪个动作决定^ M的放置位置。 无论哪种方式,我仍然最终与^ M的地方,我想避免得到他们后,使用梅尔德! FWIW:目录正在被Dropbox同步; 在Meld中的Preferences> Encoding选项卡中,在文本框中input“utf8” 所有的操作都是在Linux(Ubunt 12.04)下使用Meld v1.5.3,Emacs v23.3.1来执行的 目前的解决方法是在terminal中运行: dos2unix /path/to/script.r ,它dos2unix /path/to/script.r ^M s。 但这不应该是必要的,我希望在这里有人能告诉我如何避免这些。 干杯。

移植DOS程序到Linux读/写USB串口

我有一个与串口一起工作的旧DOS程序。 我需要把它移植到linux 。 我已经通过USB连接我的串行设备到Linux(使用rs232电缆)。 它显示为/ dev / ttyUSB0。 我可以使用函数outb , outb (而不是DOS等价于outb ,outp)从我的代码中读取或写入设备吗? ( outb和outb特殊function的低级读写字节到特定的端口地址)。 我不明白如何确定正确的端口号。 也许有另一种方法 – 例如打开文件“/ dev / ttyUSB0”。 但在这种情况下,读取设备寄存器(如调制解调器控制寄存器(MCR)或线路状态寄存器(LSR))时出现问题。

目录和目录/在Linuxterminal或在DOS中有什么区别?

例如:在我们需要引用任何目录的任何命令。 然后我们使用dirname或dirname/ 他们有什么区别? 例如cd dirname vs cd dirname/ 和cp -R dirname1 dirname2 vs cp -R dirname1 dirname2/ vs cp -R dirname1/ dirname2/

如何使用命令最大化当前命令提示符

在Windows中,我可以通过键盘快捷键Alt + space然后x最大化当前窗口。 当我在命令提示符下工作时,可以使用命令(不使用快捷键)执行同样的操作吗? 简单地说,我需要创build一个bat文件,使Windows运行后最大化。 编辑:我需要这样做,而无需重新启动命令提示符。 因为重启失去了现有窗口的内容。

recursion执行使用Windows的所有目录中的命令

我试图执行可执行文件pngout来压缩文件夹及其子文件夹中包含的所有图像。 我正在使用Windows 7机器。 我试着用下面的代码: for %i in (*.png) do pngout "%i" /kp for /r /d %%x in (*) do ( pushd "%%x" for %i in (*.png) do pngout "%i" /kp popd ) 但是,有一个问题,我得到这个错误: 我“/ KP意外 但是在一行中执行这个命令(在当前目录中): for %i in (*.png) do pngout "%i" /kp 任何指针? 谢谢!