如何找到使用所有磁盘空间的目录

如何找到使用所有磁盘空间的目录

我曾使用 Ubuntu 14.04 作为服务器来托管我的公司网站和邮件系统。该系统上线 3 周后,我就无法发送或接收电子邮件了。几分钟的调试显示了原因:磁盘空间不足。

Filesystem      Size  Used Avail Use% Mounted on
udev            3.9G     0  3.9G   0% /dev
tmpfs           799M  8.7M  790M   2% /run
/dev/xvda1      7.8G  7.4G     0 100% /
tmpfs           3.9G     0  3.9G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           3.9G     0  3.9G   0% /sys/fs/cgroup
tmpfs           100K     0  100K   0% /run/lxcfs/controllers
tmpfs           799M     0  799M   0% /run/user/1000

问题:如何找到占用所有磁盘空间的目录?

我尝试df -hs /path/to/directory在所有根目录上使用,但没有成功。有 4GB 的空间未被占用。

答案1

十大最大目录:

du -a / | sort -n -r | head -n 10

以更人性化可读的格式:

du -hsx / | sort -rh | head -10

最大的 10 个文件:

find / -printf '%s %p\n'| sort -nr | head -10

有 4GB 空间未被占用。

很多小文件加起来也有4Gb……


我建议看看最明显的罪魁祸首:

/var/log/

如果您的系统出现错误,系统会将其记录在那里。3 周的错误很快就会累积到 4Gb。除此之外:在该系统上使用数据库?如果是……/var/lib/mysql例如,检查数据库存储文件的目录。

答案2

如果您更喜欢使用基于 GUI 的工具,则可以使用Disk Usage Analyzer。您可以使用它来挖掘硬盘并查找最大的文件夹。

在下面的例子中,文件夹usr是最大的文件夹,有 18.9GB,opt第二大的文件夹有 2.3GB,依此类推。您可以点击右侧图表上的任意部分,或点击左侧的树形结构来展开。磁盘使用情况分析器示例

注意:使用此工具查找最大文件会很困难,因为它只提供文件夹的总大小。也就是说,包含 200 个 1MB 文件的文件夹看起来会比包含单个 100MB 文件的文件夹大。因此,如果您要查找的是最大文件而不是最大文件夹,最好使用 @Rinzwind 提供的命令行说明。

相关内容