我在 rackspace 有一台 CentOS 6 服务器,有 40GB 空间。我的服务器不断崩溃,并出现“设备上没有剩余空间”错误,但还有超过 50% 的可用空间。
当我运行 df-i 时,输出如下:
/dev/xvda1 2490368 2490351 17 100% /
我认为问题出在 postdrop 上。在我禁用 postfix 和 postdrop 之前,只要我释放一些 inode,它们就会立即填满。
据我所知,/var/spool/postfix/maildrop 中创建了成千上万个文件。文件夹本身有 67MB。我无法“ls”该文件夹,我尝试过“rm -rf maildrop/”,但只是挂起了很长时间。
我如何删除此文件夹。我甚至不使用服务器上的邮件,所以我禁用了 postfix、postdrop 和 sendmail。
drwx-wx---. 2 postfix postdrop 67M Dec 18 18:25 maildrop
只是想更新:
ls -1 | xargs -I{} rm {}
上述命令解决了这个问题
断断续续耗时 48 小时。/var/spool/postfix/maildrop 文件夹中似乎有近 2,000,000 个文件。
答案1
如果你的目录中满是文件,通常你不能用 rm 删除所有文件
尝试:
find /path/to/directory -type f -exec rm {} \;
或者尝试:
ls -1 /path/to/directory | xargs -I{} rm {}
换句话说,您必须尝试将命令分成两部分,一部分处理文件,另一部分删除文件。
当您将大量文件放入一个目录中时,您无法使用 rm 之类的命令删除文件。因为 rm 在任何情况下都会在所有文件和目录之间进行迭代。
答案2
嗯,你真的想关闭你的服务器吗?所以不要在
find /path/to/directory -type f -exec rm {} \;
此命令将为每个文件运行“rm”命令!
正确使用“查找”命令:
find /directory/ -name ‘*’ -exec rm {} +
这将仅对找到的文件调用“rm”命令。您的服务器会感谢您!;) ;) ;)
答案3
在尝试执行 freedev 建议的任何命令时收到各种错误后,我最终像这样清理它:
rm -f 0*
rm -f 1*
rm -f 2*
[...]
rm -f 9*
你可能想先做一个来rm -f 00*
估计需要多长时间