在 Linux 上“定时执行 cleanup(清理任务)”通常有几种常见做法,下面按使用场景给你总结。
crontab -e
0 3 * * * /usr/bin/find /tmp -type f -mtime +7 -delete
含义:
0 3 * * *:每天 03:00/tmp 中 7 天前的文件0 4 * * 0 /usr/bin/find /var/log -name "*.log" -mtime +30 -delete
适合服务器、容器、生产环境。
sudo vim /usr/local/bin/cleanup.sh
内容示例:
#!/bin/bash
find /tmp -type f -mtime +7 -delete
journalctl --vacuum-time=7d
chmod +x /usr/local/bin/cleanup.sh
sudo vim /etc/systemd/system/cleanup.service
[Unit]
Description=Cleanup Task
[Service]
Type=oneshot
ExecStart=/usr/local/bin/cleanup.sh
sudo vim /etc/systemd/system/cleanup.timer
[Unit]
Description=Daily Cleanup
[Timer]
OnCalendar=daily
Persistent=true
[Install]
WantedBy=timers.target
sudo systemctl enable --now cleanup.timer
查看状态:
systemctl list-timers
docker system prune -af
journalctl --vacuum-time=7d
apt-get clean
dnf clean all
find ... -print 测试-delete 直接删根目录>> /var/log/cleanup.log 2>&1
如果你能告诉我:
我可以给你一份可直接用的定时清理脚本。