df -h和du -sh结果不一致,删除进程打开的文件也没有
时间: 2024-04-12 10:33:38 浏览: 15
您好!df -h和du -sh命令的结果可能不一致的原因有很多。df -h命令用于显示文件系统的磁盘空间使用情况,而du -sh命令用于显示指定目录或文件的磁盘空间使用情况。
一种可能的原因是,有进程正在使用已删除的文件。即使您删除了文件,如果某个进程仍然打开着该文件,那么文件所占用的磁盘空间将不会被释放。在这种情况下,du -sh命令会统计该文件的大小,而df -h命令则显示的是文件系统的磁盘空间使用情况。
您可以使用lsof命令来查看当前系统中哪些进程打开了已删除的文件。运行以下命令:
lsof | grep deleted
这将显示已删除的文件被哪些进程打开。如果您找到了相关进程,您可以通过重启该进程或者重启整个系统来释放文件所占用的磁盘空间。
另外,还有其他一些可能导致df -h和du -sh结果不一致的因素,例如文件系统的错误、硬链接、软链接、挂载点等。如果您对这些方面有更多的疑问,可以提供更多的细节,我会尽力帮助您解决问题。
相关问题
linux使用df -h显示没有空间,但是du -sh *找不到大文件
这可能是由于某些文件被删除但仍然被进程占用,导致磁盘空间无法释放。你可以使用lsof命令查找这些被占用的文件。运行以下命令列出磁盘空间使用情况最高的前10个目录:
```
du -h / | sort -n -r | head -n 10
```
如果你仍然找不到问题所在,你可以尝试使用find命令查找大文件:
```
find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null
```
上述命令将查找所有大于100MB的文件。如果这些命令都无法解决问题,你可能需要考虑重新分配磁盘空间或者清理系统日志等无用文件。
df -h 查看/ 占用90% 但实际却没有
可能是由于某些未释放的文件句柄或者已删除但未释放的文件导致的磁盘空间占用问题。你可以使用 `lsof` 命令来查看哪些进程在占用文件句柄,然后结束这些进程或重启系统。另外,你也可以使用 `du` 命令来查看实际的磁盘使用情况。例如,`du -sh /` 可以显示根目录的磁盘使用情况。如果你使用的是虚拟机,也可以尝试使用磁盘压缩工具来压缩虚拟磁盘文件。