You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Linux下/dev/sda3占满无剩余空间,如何查找对应文件清理释放?

/dev/sda3设备"No space left on device"报错排查清理步骤

你执行的df -i命令是查询磁盘inode占用,显示/dev/sda3 100%占用说明该分区的inode编号已用尽,通常是分区内存在海量小文件导致,你可以按照以下步骤定位并清理文件:

步骤1:确认/dev/sda3的挂载路径

执行以下命令查看分区对应的挂载目录:

df -h /dev/sda3

输出结果的最后一列即为挂载路径,常见为根目录/、/home等,后续排查都基于该路径操作,下文统一用<挂载路径>代指。

步骤2:按需求排查对应文件

场景1:排查占用磁盘容量大的文件

执行以下命令,从大到小列出挂载路径下第一层目录的容量占用:

du -h --max-depth=1 <挂载路径> | sort -hr

你可以逐层进入占用较大的目录,将命令中的路径替换为对应子目录路径重复执行,即可定位到具体大文件。

场景2:排查占用大量inode的小文件(匹配你当前的报错场景)

执行以下命令统计挂载路径下各目录的文件数量,-xdev参数会限定仅扫描/dev/sda3分区内的文件,不会跨其他挂载盘扫描:

find <挂载路径> -xdev -type f | cut -d "/" -f 2 | sort | uniq -c | sort -n

输出结果的最后几行即为文件数量最多的目录,你可以进入对应子目录调整命令参数缩小排查范围,通常问题来源为未清理的程序临时缓存、海量日志碎片、定时任务生成的大量小文件。

步骤3:删除文件释放空间

  • 确认文件可删除后,执行rm <文件路径>即可删除单个文件
  • 如果需要删除包含海量小文件的目录,建议使用以下命令,效率远高于直接rm -rf:
    # 先创建空目录
    mkdir -p /tmp/empty
    # 同步空目录到待删除目录实现快速删除
    rsync --delete-before -d /tmp/empty/ <待删除目录路径>/
    

注意:删除被运行中进程占用的文件不会立刻释放空间,你可以执行lsof | grep deleted查看这类文件,重启对应进程即可完成空间释放。

内容的提问来源于stack exchange,提问作者Ronald

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 19:15:01