-
使用
df -h
查看磁盘空间
-
使用
du -sh *
查看每个目录的大小
经过查看没有发现任何大的文件夹。 继续下面的步骤
如果您的Linux磁盘已满,但是通过 du -sh
找不到大文件,可能是因为有一些进程正在写入磁盘,但是这些文件已经被删除,但是进程仍然在使用它们。这种情况下,可以使用 lsof 命令查找这些文件并杀死相关进程。以下是一些可能有用的命令:
- 查找哪些进程占用了磁盘空间:
sudo lsof | grep deleted
- 查找哪些进程占用了删除的文件:
sudo lsof +L1
- 杀死占用已删除文件的进程:
sudo kill -9 <PID>
如果 lsof | grep deleted
的命令没有返回结果,可以直接执行 sudo lsof +L1
命令。如下图是我的进程占用的磁盘空间没有释放
直接 kill 掉进程后的磁盘空间。
在 sudo lsof +L1
命令的执行结果中,SIZE/OFF
表示已删除文件的大小或偏移量。
当一个文件被删除时,如果有进程仍然在使用该文件,那么该文件的磁盘空间不会立即释放,而是被标记为“删除”。在这种情况下,SIZE/OFF
列将显示该文件的大小或偏移量。如果该文件当前没有被任何进程使用,那么 SIZE/OFF
列将显示为0。
需要注意的是,SIZE/OFF
列中显示的大小或偏移量可能是不准确的,因为已删除文件的大小可能会随着进程对其进行读写操作而发生变化。