我已安装外部磁盘/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
:
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。
答案1
du -s /log/* /log/.??*|sort -n
将显示占用最多空间的内容,并且您可以对发现较大的子目录重复使用相同的方法以深入调查。
如果文件列表中没有说明磁盘使用情况,则意味着某个程序仍在写入已删除的文件。释放该空间的唯一方法是停止该程序,如果您不知道是什么程序,可以通过重新启动计算机来完成。既然您提到应该production.log
更大,那么生成它的进程将是第一个尝试重新启动的进程。
请注意,df -i
显示的 inode 使用情况并不反映磁盘空间使用情况,而是反映相对于其文件系统限制的文件数量。
答案2
在 Ubuntu 中,您只需简单执行此操作ls -lh
,它就会为您提供可读的结果。
也喜欢这个ls /path/to/tmp -lh