Debian自动回收垃圾文件的实用方案
一 核心清理项目与推荐频率
二 方案一 使用cron定时任务
#!/usr/bin/env bash
set -e
# 0) 安全阈值:仅当根分区可用空间小于阈值才执行(单位:GB)
THRESHOLD_GB=5
AVAIL=$(df -BG --output=avail / | tail -n1 | tr -d 'G')
if [ "$AVAIL" -lt "$THRESHOLD_GB" ]; then
echo "[$(date)] 可用空间 ${AVAIL}G < ${THRESHOLD_GB}G,开始清理..."
else
echo "[$(date)] 可用空间充足(${AVAIL}G),跳过清理。"
exit 0
fi
# 1) APT
apt-get -y autoremove --purge
apt-get -y autoclean
apt-get -y clean
# 2) 日志
journalctl --rotate
journalctl --vacuum-time=7d
journalctl --vacuum-size=100M
# 3) 临时目录
rm -rf /tmp/*
rm -rf /var/tmp/*
# 4) 旧内核与残留配置(保留当前运行内核)
CURRENT_KERNEL=$(uname -r)
for pkg in $(dpkg -l | awk '/^ii linux-(image|headers)-[0-9]/ {print $2}' | grep -v "$CURRENT_KERNEL"); do
apt-get -y purge "$pkg"
done
dpkg -l | awk '/^rc/ {print $2}' | xargs -r apt-get -y purge
# 5) 可选:孤立包
if command -v deborphan >/dev/null 2>&1; then
deborphan | xargs -r apt-get -y purge
fi
# 6) 可选:浏览器缓存(当前用户)
rm -rf ~/.cache/mozilla/firefox/*/cache2/*
rm -rf ~/.config/google-chrome/Default/Cache/*
rm -rf ~/.cache/thumbnails/*
exit 0
sudo chmod +x /usr/local/bin/system-cleanup.sh
sudo crontab -e
# 添加一行:
0 2 * * * /usr/local/bin/system-cleanup.sh >> /var/log/system-cleanup.log 2>&1
说明:cron适合大多数场景,简单可控;如需更复杂依赖与并发控制,可改用systemd定时器。三 方案二 使用systemd定时器
[Unit]
Description=System Cleanup Job
After=network.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/system-cleanup.sh
[Unit]
Description=Run system cleanup daily at 02:00
Requires=system-cleanup.service
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl enable --now system-cleanup.timer
systemctl list-timers --all | grep cleanup
说明:systemd定时器具备日志与依赖管理优势,适合现代Debian环境。四 桌面用户回收站自动清理
sudo apt-get install autotrash
autotrash -d 30
sudo crontab -e
@daily /usr/bin/autotrash -td 30
五 安全与频率建议