在 Debian(以及大多数 Linux 发行版)中,“定时器”通常指 systemd 定时器 或 cron 定时任务。下面分情况说明。
.service)例如:/etc/systemd/system/mytask.service
[Unit]
Description=My Task
[Service]
Type=oneshot
ExecStart=/usr/local/bin/mytask.sh
.timer)例如:/etc/systemd/system/mytask.timer
[Unit]
Description=Run mytask every hour
[Timer]
OnBootSec=5min
OnUnitActiveSec=1h
[Install]
WantedBy=timers.target
sudo systemctl daemon-reload
sudo systemctl start mytask.timer
sudo systemctl enable mytask.timer
systemctl status mytask.timer
systemctl list-timers
✅ 如果看到 mytask.timer 且 ACTIVE,说明已经启动成功。
crontab -e
0 * * * * /usr/local/bin/mytask.sh
含义:每小时的第 0 分钟执行一次。
sudo systemctl status cron
如果未启动:
sudo systemctl start cron
sudo systemctl enable cron
| 方式 | 优点 | 适合场景 |
|---|---|---|
| systemd timer | 日志清晰、可控性强 | 系统级、服务化任务 |
| cron | 简单、兼容性好 | 快速脚本、个人任务 |
定时器没执行
.timer 是否被 enablejournalctl -u mytask.timer
journalctl -u mytask.service
脚本没执行权限
chmod +x /usr/local/bin/mytask.sh
路径问题
如果你指的是 某一个具体的定时器名称(如 apt-daily.timer、fstrim.timer),可以把名字发给我,我可以告诉你具体怎么启用。