温馨提示×

Debian如何检查系统垃圾

小樊
36
2026-01-04 20:09:32
栏目: 智能运维

Debian检查系统垃圾的实用流程

一 快速定位大占用

  • 查看整体磁盘使用:运行df -h,关注使用率接近**100%**的分区。
  • 查看块设备与挂载点:运行lsblk,确认分区与挂载位置。
  • 逐级定位目录大小:运行du -sh /* 2>/dev/null | sort -h,找出占用最大的顶级目录。
  • 交互式分析工具:安装并使用ncdu(sudo apt install ncdu),执行ncdu /,用方向键浏览、按d删除、按q退出。
  • 精准查找大文件:运行find / -type f -size +100M 2>/dev/null | xargs ls -lh,列出大于100MB的文件以便人工甄别。

二 重点目录与常见垃圾来源

  • APT缓存:检查**/var/cache/apt/archives//var/lib/apt/lists/,常见清理方式为apt clean**、apt autoclean
  • 日志与Journal:检查**/var/log与systemd日志占用,使用journalctl --disk-usage**查看日志磁盘使用。
  • 临时文件:检查**/tmp/var/tmp**。
  • 包管理残留:检查已卸载但残留配置的状态为rc的包(dpkg -l 输出以**^rc**开头)。
  • 旧内核:检查**/boot是否堆积多个内核版本,当前内核可用uname -r**确认。
  • 用户垃圾:检查用户家目录的**~/.cache**、~/.local/share/Trash等缓存与回收站。

三 一键检查脚本示例

  • 用途:快速输出“大目录、大文件、APT缓存、日志占用、旧内核、残留配置”等关键指标,便于定位垃圾来源。
  • 保存为:例如check-junk.sh,执行:chmod +x check-junk.sh && sudo ./check-junk.sh
#!/usr/bin/env bash
set -Eeuo pipefail

echo "===== 磁盘使用概览 ====="
df -h

echo -e "\n===== 块设备与挂载点 ====="
lsblk

echo -e "\n===== 各顶级目录大小(已排序) ====="
du -sh /* 2>/dev/null | sort -h

echo -e "\n===== APT 缓存与列表目录大小 ====="
du -sh /var/cache/apt/archives /var/lib/apt/lists 2>/dev/null || true

echo -e "\n===== systemd Journal 日志占用 ====="
sudo journalctl --disk-usage

echo -e "\n===== 旧内核与当前内核 ====="
echo "当前内核: $(uname -r)"
dpkg -l | awk '/^ii linux-(image|headers)-[^ ]+/{print $2}' | sort -V

echo -e "\n===== 残留配置包 rc 状态 ====="
dpkg -l | awk '/^rc/{print $2}'

echo -e "\n===== 大于100MB的文件(前20个) ====="
sudo find / -type f -size +100M -print 2>/dev/null | head -n 20 | xargs -r ls -lh

四 安全清理提示

  • 清理前先备份重要数据,生产环境先在测试环境验证命令。
  • 删除**/tmp/var/tmp**前确认无正在使用的临时文件;必要时先停止相关服务。
  • 清理旧内核务必保留至少1个可启动内核,删除前用uname -r核对当前版本。
  • 删除rc残留配置前确认对应软件已不再需要;删除日志建议用journalctl的**–vacuum-time–vacuum-size**参数,避免直接粗暴删文件。

0