温馨提示×

Debian如何彻底清理垃圾

小樊
40
2025-11-22 15:03:31
栏目: 智能运维

Debian 彻底清理垃圾的实用步骤

一 核心清理清单

  • 清理 APT 缓存与无用包
    • 删除已下载的包文件:sudo apt-get clean
    • 仅删除过期包:sudo apt-get autoclean
    • 移除不再需要的依赖:sudo apt-get autoremove
    • 彻底卸载软件及其配置:sudo apt-get purge 软件名
  • 清理残留与孤立包
    • 清理“已删除但残留配置”的状态包:sudo apt-get purge $(dpkg -l | awk ‘/^rc/ {print $2}’)
    • 查找并移除孤立包(需先安装):sudo apt-get install deborphan,然后 sudo deborphan | xargs sudo apt-get remove --purge
  • 清理旧内核(务必保留当前在用内核)
    • 查看当前内核:uname -r
    • 列出已安装内核:dpkg --list | grep linux-image
    • 安全删除旧内核(示例):sudo apt-get purge linux-image-旧版本号,或用脚本按“排除当前版本”的方式批量处理
  • 清理日志与临时文件
    • 精简 systemd 日志(保留最近7天):sudo journalctl --vacuum-time=7d
    • 清理旧压缩日志:sudo rm -f /var/log/*.gz
    • 清理临时目录:sudo rm -rf /tmp/ /var/tmp/**
  • 可选 本地化与缩略图
    • 清理未使用本地化数据(需先安装):sudo apt-get install localepurge
    • 清理用户缩略图:rm -rf ~/.cache/thumbnails/

二 安全删除旧内核的正确做法

  • 确认当前运行内核:uname -r
  • 列出所有内核包:dpkg --list | grep linux-image
  • 删除除当前版本外的旧内核(示例思路):
    • 先生成待删除列表(排除当前版本):
      • 旧镜像:dpkg -l | awk ‘/^ii linux-image-[0-9]/ {print $2}’ | grep -v $(uname -r | sed ‘s/-.*//’)
      • 旧头文件:dpkg -l | awk ‘/^ii linux-headers-[0-9]/ {print $2}’ | grep -v $(uname -r | sed ‘s/-.*//’)
    • 再执行删除(谨慎核对后再执行):
      • sudo apt-get purge 旧内核包名 旧头文件包名
  • 提示:切勿删除当前正在使用的内核,避免系统无法启动。

三 查找占用空间的大文件与目录

  • 快速查看分区使用:df -h
  • 交互式分析磁盘占用:sudo ncdu /(方向键导航,按 d 删除确认)
  • 按目录汇总大小:sudo du -sh / 2>/dev/null | sort -h*
  • 按条件查找大文件(示例:大于100MB):sudo find / -type f -size +100M -exec ls -lh {} ; 2>/dev/null

四 自动化与长期维护

  • 一键清理脚本(示例)
    • 保存为 cleanup.sh,执行 chmod +x cleanup.sh && ./cleanup.sh
    • 脚本内容:
      • #!/bin/bash sudo apt-get update sudo apt-get autoremove --purge -y sudo apt-get clean sudo apt-get autoclean -y sudo journalctl --vacuum-time=7d sudo rm -rf /tmp/* /var/tmp/* sudo apt-get purge $(dpkg -l | awk ‘/^rc/ {print $2}’) -y
  • 定时清理临时文件
    • 使用 systemd-tmpfiles:sudo systemd-tmpfiles --clean(可按需配置 /etc/tmpfiles.d/ 并定期执行)
  • 日志轮转
    • 确保 logrotate 正常运行,按策略自动压缩与清理旧日志,避免日志无限增长

五 注意事项与风险提示

  • 执行 sudo rm -rf /tmp/ /var/tmp/** 前尽量在系统空闲时进行,避免删除正在使用的临时文件。
  • 删除旧内核前务必确认当前内核版本,保留至少1个可启动内核。
  • 使用 deborphan / localepurge 等工具前先了解其作用,避免误删有用文件。
  • 任何删除操作前建议先做重要数据备份,并在关键服务器上先在测试环境验证命令。

0