Linux磁盘空间占满,但搜不到大文件

[复制链接] |主动推送
查看40 | 回复0 | 2024-9-11 15:04:56 | 显示全部楼层 |阅读模式
1. 使用 df -h 查看磁盘空间
111553c2ujne4k6rnrgg76.png


2. 使用 du -sh * 查看每个目录的大小
111553vx838i3vr1vm3sar.png
经过查看没有发现任何大的文件夹。 继续下面的步骤


如果您的Linux磁盘已满,但是通过 du -sh 找不到大文件,可能是因为有一些进程正在写入磁盘,但是这些文件已经被删除,但是进程仍然在使用它们。这种情况下,可以使用 lsof 命令查找这些文件并杀死相关进程。以下是一些可能有用的命令:

1.查找哪些进程占用了磁盘空间:
sudo lsof | grep deleted
2.查找哪些进程占用了删除的文件:
sudo lsof +L1
3.杀死占用已删除文件的进程:
sudo kill -9


如果 lsof | grep deleted 的命令没有返回结果,可以直接执行 sudo lsof +L1 命令。如下图是我的进程占用的磁盘空间没有释放
111553gbxm18obmxxtqm8b.png


直接 kill 掉进程后的磁盘空间。
111554owwz1i5ok0h33i2o.png


在 sudo lsof +L1 命令的执行结果中,SIZE/OFF 表示已删除文件的大小或偏移量。
当一个文件被删除时,如果有进程仍然在使用该文件,那么该文件的磁盘空间不会立即释放,而是被标记为“删除”。在这种情况下,SIZE/OFF 列将显示该文件的大小或偏移量。如果该文件当前没有被任何进程使用,那么 SIZE/OFF 列将显示为0。
需要注意的是,SIZE/OFF 列中显示的大小或偏移量可能是不准确的,因为已删除文件的大小可能会随着进程对其进行读写操作而发生变化。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则