Ubuntu 服务器或工作站磁盘空间不足时的排查与清理流程。按照从宏观到微观的顺序,先查看整体磁盘使用情况,再逐步定位占用空间的大文件和目录。

磁盘使用概览

首先获取各分区和根目录下各子目录的空间占用全貌。

# === 磁盘使用概览 ===
df -h                                    # 查看磁盘空间总览
df -BG                                   # 以GB为单位显示
sudo du -sh /*                          # 根目录各子目录占用大小
sudo du -sh /* | sort -hr | head -10    # 前10个最大目录
 

交互式磁盘分析工具

ncdu 提供交互式的目录树浏览界面,比手动 du 更高效地定位空间占用来源。

sudo apt install ncdu                   # 安装ncdu工具
sudo ncdu /                             # 交互式查看根目录
ncdu /home                              # 分析用户目录
 

查找大文件

通过 find 按文件大小排序,快速找出占用空间最多的单个文件。

sudo find / -type f -size +100M -exec ls -lh {} \; 2>/dev/null    # 大于100MB的文件
sudo find / -type f -size +1G -exec ls -lh {} \; 2>/dev/null      # 大于1GB的文件
sudo find / -type f -exec du -h {} + 2>/dev/null | sort -hr | head -10  # 最大的10个文件
 

检查常见占用位置

Ubuntu 系统中常见的空间消耗大户包括日志、软件包缓存、Snap/Docker 数据等。

sudo du -sh /var/log/*                  # 日志文件占用
sudo du -sh /var/cache/apt/             # 软件包缓存
du -sh /home/*                          # 用户目录占用
sudo du -sh /tmp                        # 临时文件
sudo du -sh /var/lib/snapd/             # Snap包占用
sudo du -sh /var/lib/docker/            # Docker占用(如果有)
 

当前目录分析

对当前工作目录进行层级分析,适合在已定位到某个大目录后进一步排查。

du -sh *                                # 当前目录各子目录大小
du -h --max-depth=1 . | sort -hr       # 当前目录层级分析并排序