温馨提示×

如何自动清理debian垃圾

小樊
44
2026-09-12 22:37:59
栏目: 智能运维

在 Debian 系统中,“垃圾”通常包括:

  • 不再需要的依赖包(orphaned packages)
  • apt 缓存(/var/cache/apt/archives)
  • 旧内核
  • 日志文件
  • 用户临时文件

下面按手动命令 → 自动清理方案来说明。


一、常用手动清理命令

1. 清理 apt 缓存

sudo apt clean
sudo apt autoclean

2. 删除无用依赖

sudo apt autoremove
sudo apt autoremove --purge

3. 删除旧内核(谨慎)

sudo apt purge $(dpkg -l | grep 'linux-image' | awk '{print $2}' | grep -v $(uname -r))

⚠️ 至少保留一个正在使用的内核

4. 清理系统日志

sudo journalctl --vacuum-time=7d

5. 清理用户缓存

rm -rf ~/.cache/*

二、自动清理方案(推荐)

方案 1:使用 unattended-upgrades(系统自带)

可自动安全更新并清理:

sudo apt install unattended-upgrades
sudo dpkg-reconfigure unattended-upgrades

编辑:

/etc/apt/apt.conf.d/50unattended-upgrades

确保包含:

Unattended-Upgrade::Remove-Unused-Dependencies "true";
Unattended-Upgrade::Automatic-Reboot "false";

方案 2:使用 cron 定时清理(最常用)

创建脚本:

sudo nano /usr/local/bin/auto-clean.sh

内容:

#!/bin/bash
apt update
apt autoremove -y
apt autoclean -y
journalctl --vacuum-time=7d

赋予权限:

sudo chmod +x /usr/local/bin/auto-clean.sh

加入 cron(每周日 3 点):

sudo crontab -e

添加:

0 3 * * 0 /usr/local/bin/auto-clean.sh

方案 3:使用 systemd timer(更现代)

创建 service:

sudo nano /etc/systemd/system/auto-clean.service
[Unit]
Description=Auto clean Debian

[Service]
Type=oneshot
ExecStart=/usr/local/bin/auto-clean.sh

创建 timer:

sudo nano /etc/systemd/system/auto-clean.timer
[Unit]
Description=Weekly auto clean

[Timer]
OnCalendar=weekly
Persistent=true

[Install]
WantedBy=timers.target

启用:

sudo systemctl enable --now auto-clean.timer

三、进阶工具(可选)

  • deborphan:找孤立包
  • bleachbit:图形化清理
  • ncdu:分析磁盘占用

总结(最省心方案)

✅ 安装 unattended-upgrades
✅ 开启 Remove-Unused-Dependencies
✅ 用 cron 或 systemd 每周执行一次 autoremove + autoclean

如果你愿意,我可以按你的 Debian 版本(11/12)或服务器/桌面环境给你定制一套自动清理配置。

0 踩