温馨提示×

怎样自动化ubuntu cleanup

小樊
41
2026-10-08 13:54:40
栏目: 智能运维

在 Ubuntu 上做“自动化 cleanup”通常指定期清理系统垃圾、缓存、日志、旧内核、无用包,可以用下面几种方式组合。


一、先用系统自带命令做一次性清理(基础)

# 清理 apt 缓存
sudo apt clean
sudo apt autoremove --purge -y

# 清理旧内核(保留当前运行内核)
sudo apt autoremove --purge -y

# 清理 systemd 日志
sudo journalctl --vacuum-time=7d

# 清理用户缓存
rm -rf ~/.cache/*

二、写成一个 cleanup 脚本(推荐)

创建脚本:

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

内容示例:

#!/bin/bash
set -e

echo "==> Cleaning apt cache"
apt clean
apt autoremove --purge -y

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

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

echo "==> Done"

赋予执行权限:

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

测试:

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

三、用 cron 实现“自动化”(最简单)

编辑 root 的定时任务:

sudo crontab -e

每周日凌晨 3 点执行:

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

四、用 systemd timer(更现代)

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 Ubuntu Cleanup

[Timer]
OnCalendar=weekly
Persistent=true

[Install]
WantedBy=timers.target

3. 启用

sudo systemctl enable --now cleanup.timer

查看状态:

systemctl list-timers

五、进阶自动化工具(可选)

  • bleachbit(图形 + CLI)
    sudo apt install bleachbit
    bleachbit --clean apt.cache
    
  • unattended-upgrades(自动安全更新)
    sudo apt install unattended-upgrades
    sudo dpkg-reconfigure unattended-upgrades
    

六、注意事项(很重要)

  • ⚠️ 不要自动删除正在使用的内核
  • ⚠️ 生产服务器建议只清理日志和缓存,不自动 autoremove
  • ✅ 日志输出到文件,方便排查

如果你愿意,我可以:

  • 给你服务器版 / 桌面版不同方案
  • 写成 Ansible / Docker / CI 自动清理
  • 或针对 磁盘快满做智能清理脚本

0 踩