我的云实例(运行 Web 应用程序)的磁盘使用量莫名其妙地上升,我怀疑那里存在类似存储泄漏的情况。有没有办法按目录细分磁盘使用量,以便找出占用大量存储空间的目录,以便我可以进行调查?
请注意,在这个云实例中,我没有 GUI,必须依赖终端(通过 SSH)。
这个问题和链接的相关问题我想要查找详细情况,而不仅仅是目录的总体使用情况。
答案1
你可以尝试GT5。它会列出当前目录或指定目录内容的磁盘使用情况,按从高到低的顺序排列。例如,如果您发现 /var/tmp 占用了大量空间,您可以执行以下操作:
sudo gt5 /var/tmp
要查看该文件夹内容的使用情况。要查看系统中磁盘使用情况的基本信息,请尝试:
sudo gt5 /
要获得它,只需执行以下操作:
sudo apt-get install gt5
答案2
磁盘使用情况分析器(又名baobab
)非常适合快速分析磁盘空间的去向;因此我建议通过带有 X 转发的 SSH 使用磁盘使用情况分析器。
为了正常工作,应该在客户端和服务器上启用 X 转发;它应该在服务器上默认启用,因此只需在当前客户端会话中启用它即可:
ssh -X user@host baobab
答案3
du -sh *
在根目录中执行。
答案4
您可以使用该du
命令按目录打印磁盘使用情况明细。该du
命令可以递归计算目录及其内容的大小,并且sort
可以使用该命令按大小对结果进行排序。
这是一个示例命令,它将按目录打印磁盘使用情况的明细,并按大小排序:
du -h / | sort -h
此命令将计算根目录 ( /
) 及其所有子目录的磁盘使用情况,并以人性化格式 ( -h
) 显示大小。此sort -h
命令将按大小对输出进行排序,最小目录排在最前面,最大目录排在最后。
如果您怀疑存储泄漏来自特定目录,则可以修改命令以从其他目录启动。例如,如果您怀疑泄漏来自目录/var
,则可以使用以下命令:
du -h /var | sort -h
这将计算目录及其子目录的磁盘使用情况/var
,并按大小排序显示大小。
一旦确定了占用大量存储空间的目录,您就可以进一步调查以确定存储泄漏的原因。