温馨提示×

ubuntu cleanup如何自动化

小樊
47
2026-09-11 14:31:56
栏目: 智能运维

在 Ubuntu 上做“自动化清理”通常分几个层次:一次性手动清理 → 定时任务(cron/systemd) → 自动化脚本/工具。下面按实用程度给你一套可落地的方案。


一、最基础的自动清理命令(先知道清什么)

1. apt 缓存与旧内核

sudo apt autoremove --purge -y
sudo apt autoclean

2. 系统日志

sudo journalctl --vacuum-time=7d

3. 用户缓存

rm -rf ~/.cache/*

4. 回收站

rm -rf ~/.local/share/Trash/*

二、写成一个自动化清理脚本(推荐)

创建脚本

sudo nano /usr/local/bin/ubuntu-cleanup.sh

内容示例:

#!/bin/bash
set -e

echo "==> Cleaning apt"
apt autoremove --purge -y
apt autoclean

echo "==> Cleaning journal"
journalctl --vacuum-time=7d

echo "==> Cleaning user cache"
rm -rf /home/*/.cache/*

echo "==> Done"

赋予执行权限:

sudo chmod +x /usr/local/bin/ubuntu-cleanup.sh

三、用 cron 定时执行(最简单)

每周日凌晨 3 点执行

sudo crontab -e

添加:

0 3 * * 0 /usr/local/bin/ubuntu-cleanup.sh >> /var/log/cleanup.log 2>&1

四、用 systemd 定时器(更现代)

1. 创建 service

sudo nano /etc/systemd/system/cleanup.service
[Unit]
Description=Ubuntu Cleanup

[Service]
Type=oneshot
ExecStart=/usr/local/bin/ubuntu-cleanup.sh

2. 创建 timer

sudo nano /etc/systemd/system/cleanup.timer
[Unit]
Description=Weekly Cleanup

[Timer]
OnCalendar=weekly
Persistent=true

[Install]
WantedBy=timers.target

3. 启用

sudo systemctl enable --now cleanup.timer

查看状态:

systemctl list-timers

五、使用现成工具(懒人方案)

1. BleachBit(图形化)

sudo apt install bleachbit

可设置自动清理策略(GUI)

2. fslint / ncdu(找大文件)

sudo apt install ncdu
ncdu /

六、进阶建议(生产环境)

  • ✅ 不要自动删 /var/log 全部
  • ✅ Docker 用户加:
docker system prune -f
  • ✅ 云服务器建议只清 journal + apt

如果你愿意,可以告诉我:

  • 桌面还是服务器
  • 是否使用 Docker / Snap / LXD
  • 想要每天 / 每周 / 开机自动

我可以直接帮你生成完整可用脚本 + 定时器配置

0