温馨提示×

如何自动化ubuntu cleanup任务

小樊
36
2026-09-26 20:54:42
栏目: 智能运维

在 Ubuntu 上自动化“清理(cleanup)”任务,通常有 系统自带工具 + 定时任务 的方式,也可以结合脚本。下面按“从简单到高级”给你一套可落地方案。


一、先用系统自带清理命令(手动 / 脚本化)

1. 常见可清理内容

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

# 清理旧内核(保留当前和上一个)
sudo apt autoremove --purge -y

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

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

二、用 cron 定时自动化(最常用)

1. 创建清理脚本

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

内容示例:

#!/bin/bash
apt clean
apt autoremove --purge -y
journalctl --vacuum-time=7d
rm -rf /tmp/*

赋予执行权限:

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

2. 加入 cron(每天凌晨执行)

sudo crontab -e

添加一行:

0 3 * * * /usr/local/bin/ubuntu-cleanup.sh >> /var/log/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=Daily Cleanup Timer

[Timer]
OnCalendar=daily
Persistent=true

[Install]
WantedBy=timers.target

启用:

sudo systemctl enable --now cleanup.timer

查看状态:

systemctl list-timers

四、更“安全”的自动化建议

  • ✅ 不随便 rm -rf /
  • ✅ 日志保留时间可控(journalctl --vacuum-size=500M)
  • ✅ 内核清理只留 2 个
  • ✅ 生产服务器建议先测试脚本

五、可选:使用现成工具

  • bleachbit(图形 / CLI)
  • ncdu(分析占用)
  • unattended-upgrades(自动安全更新)

如果你愿意,我可以:

  • 给你一个 服务器专用 cleanup 脚本
  • 或针对 Docker / 桌面 / 云服务器 定制方案

0 踩