最近,我的服务器上的 /var 和 /home 文件夹一直堵塞,我收到一封“严重错误”电子邮件,说 /home 文件夹已满 100%。我设法使用 LVExtend 命令修复了它,但我只是想知道如何找出是什么堵塞了目录?有某种日志吗?
我有一个具有 root 访问权限的专用服务器,因此我拥有完全控制权。我该怎么做才能防止这种情况再次发生,因为这种情况已经发生过两次了?
谢谢,
詹姆士
答案1
磁盘满了是因为文件被写入其中。要查找分区中哪些内容占用了空间,du
可以使用“磁盘使用情况”工具。我喜欢使用:
du -hx --max-depth=1 /home
因为它将自身限制在感兴趣的分区 ( -x
) 内,并且不会提供过多的冗长信息。如果您只想要一个占用空间的排序列表,则可以|sort -h
在该命令的末尾添加。
获得这些信息后,您可以深入研究那些看起来过大的目录,看看使用情况发生在哪里(/home/foo
、/home/foo/suspicious
等等)。什么算作“看起来过大”是您作为管理员需要根据服务器的预期使用情况做出的判断。
找到谁/什么负责创建您认为过多的文件可能有点棘手。使用ls -l
将显示文件的所有权,这是第一条信息。如果是普通用户,那么问题可能是 cron 作业、用户正在运行的 webapp 或手动调用的本地命令。这是您必须自己发现的东西,因为它是您的盒子。如果文件由 root 或其他系统用户拥有,那么它是一个系统进程,您可以找到罪魁祸首(您应该知道系统上运行的是什么以及它的作用,所以这应该相当容易)。
为了防止再次发生这种情况,如果是用户导致问题,您的选择是:
- 每个用户配额;
- 对过度使用的用户进行惩罚;
- 适当的容量规划。
如果是系统进程:
- 合理管理系统进程的磁盘使用情况;
- 适当的容量规划。
根据您对 Hawk 的回答的评论,问题可能是容量规划问题。如果您为用户提供足够的空间,让他们存储 110GB 的数据,并且只使用其配额的 4%,那么您需要更大的磁盘(更多,很多如果你依赖过量承诺来赚钱,迟早你会吃亏的。
答案2
/home 通常是用户文件。/var 有 mysql、邮件、日志文件等
cpanel 中的帐户空间有限制吗?
运行以下命令来查看哪些使用了最多的空间:
du-h-s /主页/*
du-h-s / var / *
答案3
没有日志跟踪系统上每个文件的创建/更改。
du(和 sort?)将为您提供文件大小的统计信息,但它将是一个巨大的列表 - 查看“查找”以找到最近更改的文件。