如何救援没有免费inode的服务器(来自DDOS)

Modified on: Thu, 19 Sep 2019 00:20:02 +0800

我的一个网络服务器遭到DDOS攻击。一切都很好,除了有数百万的PHP会话文件用于分区的100%inode。整个/

只有一个分区

尝试了几种解决方案,但只是在某种程度上有效。
https://unix.stackexchange.com/问题/ 37329 /有效-删除-大目录含-数千-的-文件?newreg = 07f276292205457ab9975a0ea68e9273

http:// www。 slashroot.in/which-is-the-fastest-method-to-delete-files-in-linux

释放8%的inode后,磁盘变得非常慢,无法删除任何内容。

rm -f filename* 

rsync -a --delete empty_dir/    yourdirectory/

perl -e 'for(<*>){((stat)[9]<(unlink))}'

磁盘现在看起来像这样

Filesystem      Inodes   IUsed  IFree IUse% Mounted on
/dev/vda1      2621440 2385895 235545   92% /
tmpfs           128789       1 128788    1% /dev/shm

目录中仍有6百万个+小文件。上述方法以大约2个文件/秒

删除

我读到了关于b-tree重新平衡的内容。但是,如何诊断/解决缓慢删除问题?

```

作者:Reed

最佳答案

快速做的是移动/重命名当前的/tmp目录并创建一个新目录,以便/tmp的正常使用不再受影响。

mkdir /newtmp
chmod 1777 /newtmp
mv /tmp /tmp-old && mv /newtmp /tmp 

也许你需要为/var/tmp做同样的事情。这可以让你和平地清理/ tmp-old。


作为一项缓解措施:

考虑使用一些内存来创建一个单独的tempfs分区,用作PHP会话文件的存储,这将在一定程度上限制对系统其余部分的影响。

即。

mkdir /var/cache/php
chmod 1777  /var/cache/php
mount -t tmpfs size=500M  /var/cache/php

并编辑php.ini并设置

session.save_path = "/var/cache/php"
作者:,HBruijn

相关问答

添加新评论