我怎样才能检测到占用的磁盘空间

我把我的外部磁盘安装在/log ,因为它已满,我无法再写入它。 当我用df -h检查时:

 Filesystem Size Used Avail Use% Mounted on udev 3.7G 12K 3.7G 1% /dev tmpfs 748M 384K 748M 1% /run /dev/xvda1 7.8G 7.4G 0 100% / none 4.0K 0 4.0K 0% /sys/fs/cgroup none 5.0M 0 5.0M 0% /run/lock none 3.7G 0 3.7G 0% /run/shm none 100M 0 100M 0% /run/user /dev/xvdb 40G 49M 38G 1% /mnt /dev/xvdc 40G 38G 4.0K 100% /log 

但是用df -i只有1%

 Filesystem Inodes IUsed IFree IUse% Mounted on udev 956199 394 955805 1% /dev tmpfs 957438 328 957110 1% /run /dev/xvda1 524288 165951 358337 32% / none 957438 2 957436 1% /sys/fs/cgroup none 957438 1 957437 1% /run/lock none 957438 1 957437 1% /run/shm none 957438 2 957436 1% /run/user /dev/xvdb 2621440 11 2621429 1% /mnt /dev/xvdc 2621440 23593 2597847 1% /log 

使用sudo du -s /log/* |sort -n

 4 /log/production.log 16 /log/lost+found 32 /log/redis 240024 /log/linsight 5008628 /log/mongodb 

最后我找不到用ncdu /log占用了多less磁盘空间:

  4.8GiB [##########] /mongodb 234.4MiB [ ] /linsight 32.0KiB [ ] /redis ! 16.0KiB [ ] /lost+found 4.0KiB [ ] production.log 

P / s:我认为这里真的是错误的,我100%肯定production.log是GB,但是在这里只显示4.0KB。

du -s /log/* /log/.??*|sort -n会告诉你什么花费最多的空间,你可以重复使用相同的方法来find你认为很重要的子目录来深入调查。

如果在文件列表中没有logging磁盘使用情况,则意味着某些程序仍在写入已删除的文件。 释放空间的唯一方法是停止程序,如果你不知道它是什么的话,可以通过重新启动计算机来完成。 由于您提到production.log应该更大,生成它的过程将是第一个尝试重新启动的过程。

请注意, df -i将显示不反映磁盘空间使用情况的inode使用情况,但会显示与其文件系统限制相关的文件数量。

在Ubuntu中,你可以简单地做ls -lh ,它会为你提供一个可读的结果。

也像这样ls /path/to/tmp -lh