在 Debian(以及大多数 Linux 发行版)里,**“定时器”**通常指 systemd timer,而 cron 是传统的定时任务工具。下面从多个维度对比一下它们的区别和适用场景。
/etc/crontab、/etc/cron.d/、crontab -e 配置cron 或 cronie 服务*.timer + *.service| 对比项 | cron | systemd timer |
|---|---|---|
| 配置方式 | 文本(crontab) | 单元文件(ini 风格) |
| 精度 | 分钟级 | 秒级 |
| 开机任务 | 依赖 cron 是否启动 | 可设为开机后自动触发 |
| 任务状态 | 不感知 | 可查看状态、日志 |
| 失败处理 | 无 | 可重试、依赖、条件 |
| 日志 | 邮件 / syslog | journalctl |
| 资源控制 | 不支持 | 支持 cgroup |
| 复杂度 | 简单 | 稍复杂 |
0 3 * * * /usr/bin/backup.sh
/etc/systemd/system/backup.service
[Unit]
Description=Backup
[Service]
Type=oneshot
ExecStart=/usr/bin/backup.sh
/etc/systemd/system/backup.timer
[Unit]
Description=Daily Backup
[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true
[Install]
WantedBy=timers.target
启用:
systemctl enable --now backup.timer
✅ 用 cron 如果:
✅ 用 systemd timer 如果:
新系统推荐优先使用 systemd timer
Debian 已默认使用 systemd,cron 正在被逐步边缘化。
如果你愿意,我可以: