上周同事找我,说他那台麒麟桌面版开机慢得要死,让我看看怎么回事。
我登上去一看,根分区红了,50G 的盘用了 47G。他说自己啥也没装,不可能满。结果一查,journal 日志占了 15G——这玩意儿不清理的话会一直涨,很多人不知道。
今天把排查思路整理一下,以后遇到类似情况直接照着来。
先看哪个分区红了
上来先跑 df -h,看一眼整体情况:
df -h

根分区、/var、/home 这三个最容易爆满。找到红的那个,继续往下挖。
往下挖,看谁吃的最多
sudo du -sh /* 2>/dev/null | sort -rh | head -10
这个命令就是把根目录下面每个文件夹的大小列出来,从大到小排。一眼就能看出谁是大户。

如果 /var 最大,再往里钻一层:
sudo du -sh /var/* 2>/dev/null | sort -rh | head -5
一层层往下找,直到定位到具体是哪个目录撑爆的。
找到原因,对症处理
挖出来的结果,一般就这几种情况:
journal 日志爆了(最常见)

journalctl --disk-usage # 只保留最近 3 天的日志 sudo journalctl --vacuum-time=3d # 或者限制总大小为 200M sudo journalctl --vacuum-size=200M
光清理还不够,得设个上限,不然过段时间又满了:
echo "SystemMaxUse=200M" | sudo tee -a /etc/systemd/journald.conf sudo systemctl restart systemd-journald
旧内核没删
系统更新之后旧内核会留下来,不手动删的话一直堆着:
dpkg -l | grep linux-image sudo apt autoremove --purge
apt 缓存
sudo apt clean sudo apt autoremove
用户目录塞了一堆东西
sudo find /home -type f -size +500M -exec ls -lh {} \\
ls -lh ~/.cache/
ls -lh ~/.local/share/Trash/懒人一键脚本
上面这些操作可以合成一个脚本,以后直接跑一遍就行:
#!/bin/bash echo "=== 清理前 ===" df -h / echo "[1/4] 清理 journal 日志..." sudo journalctl --vacuum-time=3d echo "[2/4] 清理 apt 缓存..." sudo apt clean echo "[3/4] 移除无用依赖..." sudo apt autoremove -y echo "[4/4] 清理临时文件..." sudo rm -rf /tmp/* 2>/dev/null sudo rm -rf /var/tmp/* 2>/dev/null echo "=== 清理后 ===" df -h /
上面那台机器跑完,47G 变 30G,清出来 17G👇

几个容易踩的坑
别直接 rm 正在写入的日志文件,有的服务会报错。用 truncate 截断比较安全:
sudo truncate -s 0 /var/log/syslog
别删当前内核,删了重启直接起不来。先用 uname -r 看看自己在用哪个版本。
Docker 也是隐形大户,镜像和容器不清理的话很容易吃掉好几个 G:
docker system prune -a
最后说两句
磁盘清理其实就一个思路:先看清全局 → 一层层往下挖 → 找到原因再动手。别上来就一顿 rm,搞不好把重要东西删了。
能用系统自带工具清理的(journalctl --vacuum、apt clean),优先用工具,别手动删文件。
以上命令在银河麒麟 V10、统信 UOS V20 上都跑过,没问题。
📌 三页札记,专注信创运维实战
每天分享银河麒麟/UOS 踩坑经验
👆 点击上方「三页札记」关注,不错过更新
📚 往期推荐
🔸 银河麒麟运维踩坑指南:软件源配置篇
夜雨聆风