题 意外的空间消耗


我有个问题。我一直没有磁盘空间。我不确切知道哪些文件占用了所有空间。似乎有一堆小文件,所以很难找到 du 命令。每当我找到一些东西摆脱以获得一些空闲空间(邮件,日志,旧档案和转速),磁盘在一段时间后再次充满。空间从系统分区(/)中被盗。结果 df 命令:

Filesystem           1K-blocks      Used Available Use% Mounted on
/dev/sda1              4061540   3848404      3492 100% /
/dev/sda3              4061572   2441348   1410576  64% /home
tmpfs                   517636         0    517636   0% /dev/shm
/dev/sdb1             10317828   1894904   7898808  20% /var/lib/mysql

在这种情况下你会推荐什么?

如果您在遇到过多或意外的空间消耗时也可以枚举案例列表,那将会很棒。它可能有助于解决问题

操作系统:CentOS 5。


4
2017-11-18 13:07






答案:


这是我的标准“找到吃空间的东西”制度:

  1. du -hx --max-depth=1 /  - 寻找吃空间的东西。检查最大的子目录(比方说 du -hx --max-depth=1 /var)直到你找到一些太空猪。日志(in /var/log)是常见的罪魁祸首(你应该使用logrotate处理),以及yum喜欢保留的重复(重新包装的RPM)。如果您可以识别任何重复犯罪者,请找出一种方法来自动执行您正在进行的任何维护工作,以便反复清理。
  2. lsof -n |grep deleted  - 查找已删除的大文件。确定哪个进程将它们打开,并将其终止或告诉它回收它的句柄(如果它们是日志文件, kill -HUP <pid> 如果可以的话,会经常这样做。
  3. 我的第三道攻击是调整分区大小或将新分区分配给各种安装,尽管在你的情况下,由于你没有使用LVM,这很棘手。考虑进行维护 /dev/sdb1 进入VG并从那里分配。
  4. 升级。磁盘空间非常便宜,如果你花费一个小时的时间来寻找导致空间消耗的因素,那么你只需“花费”支付新硬盘所需的时间,所以购买新的驱动器而不是花费太多时间追捕问题。

14
2017-11-18 13:29



伟大而详尽的答案。谢谢 - altern
感谢什么只是感谢? :) - Karolis T.
ITYM“du”,而不是“df” - David Mackintosh
@Karolis:你可以通过点击小箭头来节省所有打字... @David:D'哦,谢谢抓住。这是我在晚上第一次喝茶之前得到的SFing。 - womble♦
哇,你有什么好主意。 :P - kmarsh


womble答案的另一个补充 - 如果你发现你获得了大量的大型日志文件,请考虑使用 日志轮播 (默认安装在大多数发行版上)以保持它们的大小。如果有一个特殊日志记录占用了大部分空间,您还应该检查它是否存在重复错误,并确保生成日志的服务未设置为过高的详细级别。


2
2017-11-18 16:26





如果还没有,请将/ var挂载点移动到另一个分区。存在文件系统/ var以防止根FS填满。

对于/ tmp也是如此,如果还没有单独的分区。

您可能有一个删除文件但保持文件打开的进程。在关闭/处理退出之前,不会回收空间。您可以使用lsof命令查找哪些进程正在打开哪些文件。命令lsof可能不在您的标准Centos安装中,您可能必须添加包才能获得它。


0
2017-11-18 13:14





sudo du --all --one-file-system / | xdu -n

0
2017-11-18 16:57





示例:unmount / home,在那里写入10GB文件,再次mount / home。空间将被消耗,并且 df 什么都不显示:挂载点隐藏文件夹中的文件。

检查一下:如果发生了安装错误,并且有些文件放在那里,就会发生这种情况。


0
2017-11-20 23:43