帮助中心 >  技术知识库 >  云服务器 >  服务器教程 >  Linux磁盘空间占满,但搜不到大文件

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

2023-11-17 16:00:26 3402

1. 使用 df -h 查看磁盘空间

4.png


2. 使用 du -sh * 查看每个目录的大小

5.png

经过查看没有发现任何大的文件夹。 继续下面的步骤


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

 

1.查找哪些进程占用了磁盘空间:

sudo lsof | grep deleted

2.查找哪些进程占用了删除的文件:

sudo lsof +L1

3.杀死占用已删除文件的进程:

sudo kill -9 <PID>

 

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

6.png


直接 kill 掉进程后的磁盘空间。

7.png


在 sudo lsof +L1 命令的执行结果中,SIZE/OFF 表示已删除文件的大小或偏移量。

当一个文件被删除时,如果有进程仍然在使用该文件,那么该文件的磁盘空间不会立即释放,而是被标记为“删除”。在这种情况下,SIZE/OFF 列将显示该文件的大小或偏移量。如果该文件当前没有被任何进程使用,那么 SIZE/OFF 列将显示为0。

需要注意的是,SIZE/OFF 列中显示的大小或偏移量可能是不准确的,因为已删除文件的大小可能会随着进程对其进行读写操作而发生变化。


提交成功!非常感谢您的反馈,我们会继续努力做到更好!

这条文档是否有帮助解决问题?

非常抱歉未能帮助到您。为了给您提供更好的服务,我们很需要您进一步的反馈信息:

在文档使用中是否遇到以下问题: