df -h 查看/ 占用90% 但实际却没有 怎么清理
时间: 2023-11-08 18:31:17 浏览: 87
如果 `df -h` 命令显示 / 占用了90%的磁盘空间,但是实际上并没有这么多数据,这可能是由于磁盘上有一些被删除但仍被打开的文件导致的。这种情况下,可以通过以下步骤来清理磁盘空间:
1. 找到被删除但仍被打开的文件,可以使用 `lsof | grep deleted` 命令列出这些文件,然后将它们的占用进程杀掉,或者重启进程。
2. 清理系统日志等不必要的文件。可以使用 `du -h /var/log` 命令查看日志文件的大小,然后删除一些过期的日志文件。
3. 清理临时文件,可以使用 `sudo rm -rf /tmp/*` 命令清理 /tmp 目录下的所有临时文件。
4. 通过清理软件包缓存来释放空间,可以使用 `sudo apt-get clean` 命令清理 apt 软件包缓存。
5. 如果以上方法都不能释放磁盘空间,可能需要使用文件系统检查工具来修复文件系统错误。可以使用 `fsck` 命令对磁盘进行检查和修复。
注意在进行任何操作前,请确保有备份数据,以免数据丢失。
相关问题
df -h 查看/ 占用90% 但实际却没有
可能是由于某些未释放的文件句柄或者已删除但未释放的文件导致的磁盘空间占用问题。你可以使用 `lsof` 命令来查看哪些进程在占用文件句柄,然后结束这些进程或重启系统。另外,你也可以使用 `du` 命令来查看实际的磁盘使用情况。例如,`du -sh /` 可以显示根目录的磁盘使用情况。如果你使用的是虚拟机,也可以尝试使用磁盘压缩工具来压缩虚拟磁盘文件。
linux中df查看空间占用90,用du查不到
在Linux中,`df`命令用于显示文件系统的磁盘使用情况,它汇总了所有挂载点的信息,包括系统分区、文件系统总大小、已使用的空间以及可用的空间比例。如果你看到`df`报告某个分区的使用率接近90%,但是通过`du`(递归地统计目录下文件的大小)单独检查该分区下的具体内容时无法找到大量占用空间的文件,这可能是由于以下几个原因:
1. **隐藏的大文件**:`du`默认不会跟踪系统文件,如日志文件、索引文件等。如果大型文件系统包含许多这样的系统文件,它们可能会占据大部分类似未被察觉的空间。
2. **目录结构**:大量的小文件分散在很多个目录下,`du`可能因为单次扫描文件数量限制而错过某些细节。你可以尝试加上`-h`选项查看更友好的人类可读格式,或者使用`du -s *`查找总和大的目录。
3. **间接映射**:对于像EXT4或XFS这样的高级文件系统,文件系统会利用间接块和元数据存储空间,这可能导致实际占用空间大于物理文件大小。
4. **交换分区**:有时候,虚拟内存交换空间也被计入`df`的总使用量,即使这部分不是直接由用户文件占用的。
如果你怀疑有误报,可以试试下面的操作来寻找潜在的大文件:
```sh
# 查看当前目录及其子目录的总大小
du -sh .
# 如果需要找出最大的几个文件或目录
du -hsx * | sort -hr | head -n 5
# 或者查找特定类型的文件,例如.log文件
find . -type f -name "*.log" -exec du -sh {} \; | sort -rh
```
阅读全文