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 # 当前目录层级分析并排序