用 systemd 定时任务清理博客缓存与日志

站点跑在一台小内存 VPS 上,缓存目录和 journal 日志长期累积后会触发磁盘告警。我的做法是写一个清理脚本,用 find 按修改时间删除超过 14 天的缓存文件,再对 journalctl 做 vacuum-time 收缩,最后用 systemd timer 每天凌晨触发,而不是塞进 crontab,这样能拿到执行状态和日志。踩过的坑有两个:脚本里用了相对路径,timer 环境下工作目录不是预期值,改成绝对路径才生效;另外删除前没加 -xdev,差点跨挂载点清到备份盘。结论是定时任务要显式声明路径与挂载范围,并用 systemctl list-timers 验证触发情况。

站点跑在一台小内存 VPS 上,缓存目录和 journal 日志长期累积后会触发磁盘告警。我的做法是写一个清理脚本,用 find 按修改时间删除超过 14 天的缓存文件,再对 journalctl 做 vacuum-time 收缩,最后用 systemd timer 每天凌晨触发,而不是塞进 crontab,这样能拿到执行状态和日志。踩过的坑有两个:脚本里用了相对路径,timer 环境下工作目录不是预期值,改成绝对路径才生效;另外删除前没加 -xdev,差点跨挂载点清到备份盘。结论是定时任务要显式声明路径与挂载范围,并用 systemctl list-timers 验证触发情况。

相关实践 →