温馨提示×

如何利用Debian清理命令优化磁盘空间

小樊
33
2025-11-30 12:06:50
栏目: 云计算

Debian 清理命令优化磁盘空间实操指南

一 快速定位占用

  • 查看整体使用:执行 df -h,关注根分区(如 /)使用率。
  • 分析目录占用:执行 sudo du -sh / | sort -rh | head -20*,找出占用最大的前 20 个目录。
  • 定位大文件:执行 sudo find / -type f -size +1G -exec du -h {} + 2>/dev/null,列出大于 1GB 的文件。
  • 可视化分析:安装并使用 ncdubaobab 进行交互式盘查(如:sudo ncdu /)。

二 软件包缓存与旧内核清理

  • 清理 APT 缓存:执行 sudo apt-get clean(清空 /var/cache/apt/archives),或 sudo apt-get autoclean(仅清理过期包)。
  • 移除无用依赖:执行 sudo apt-get autoremove --purge,删除不再需要的依赖与旧内核相关包。
  • 删除旧内核(安全做法):
    • 查看当前内核:执行 uname -r
    • 列出可移除内核:执行 dpkg --list | grep linux-image
    • 按版本删除:执行 sudo apt-get purge linux-image-(务必保留当前运行版本)。
  • 清理孤立包与残留配置:
    • 查找孤立包:执行 sudo deborphan
    • 删除孤立包:执行 sudo apt-get remove --purge $(deborphan)
    • 清理残留配置:执行 dpkg --list | grep “rc” 查看,随后 sudo dpkg --purge <包名> 逐个清除。

三 日志与临时文件清理

  • 清理 systemd 日志:执行 sudo journalctl --vacuum-time=7d(保留最近 7 天),或 –vacuum-size=100M(限制日志总大小)。
  • 清理应用日志:对轮转压缩的旧日志可删除,如 sudo rm /var/log/apache2/*.gz;建议同时检查并优化 /etc/logrotate.conf 与各服务配置。
  • 清理临时目录:
    • 系统临时:sudo rm -rf /tmp/ /var/tmp/**(确保无关键进程在使用)。
    • 使用 systemd-tmpfiles:sudo systemd-tmpfiles --clean(按配置自动清理)。
    • 使用 tmpwatch(如已安装):sudo tmpwatch 24h /tmp(删除 24h 未访问文件)。

四 大文件与长期优化

  • 安全删除大文件:先定位(见第一部分),确认无用后再删除;示例:sudo find /var -type f -size +1G -mtime +30 -ok rm {} ;(交互确认)。
  • 归档压缩不常用数据:执行 tar -czvf archive_name.tar.gz /path/to/dir,将冷数据压缩归档后迁移至外部存储或对象存储。
  • 配置自动清理与监控:
    • 定期执行清理脚本(如每日/每周 cron),统一调用 APT、日志与临时文件清理命令。
    • 长期监控:结合 df -hncdu/baobab 巡检,设置告警阈值,避免再次爆满。
  • 架构级优化(可选):在容量规划阶段考虑 LVM(灵活扩缩卷)、更高效的文件系统(如 XFS/Btrfs),或迁移至 SSD 提升整体 I/O 与空间利用效率。

五 安全提示与一键脚本

  • 重要提示:
    • 执行 rm -rf 与删除旧内核前务必确认目标与当前运行内核(uname -r),避免误删导致系统不可用。
    • 生产环境建议先在测试环境验证,并保留关键数据备份。
  • 一键清理脚本示例(按需执行与调整):
    • 清理 APT 与依赖:sudo apt-get clean && sudo apt-get autoclean && sudo apt-get autoremove --purge
    • 清理日志:sudo journalctl --vacuum-time=7d
    • 清理临时文件:sudo systemd-tmpfiles --clean && sudo rm -rf /tmp/* /var/tmp/*
    • 清理孤立包与残留配置:deborphan | xargs sudo apt-get -y remove --purge;dpkg --list | awk ‘/^rc/ {print $2}’ | xargs sudo dpkg --purge
    • 查找大文件:sudo find / -type f -size +1G -exec du -h {} + 2>/dev/null | head -50
  • 风险提示:上述命令涉及系统关键路径与软件包管理,请在充分理解命令含义并做好备份的前提下执行。

0