Ubuntu 下“定时器不触发”通常指 cron / systemd timer / at 等没按预期执行。下面按常见原因逐一排查(最常见的是 cron)。
systemctl status cron
或(老版本)
service cron status
如果没运行:
sudo systemctl start cron
sudo systemctl enable cron
date
timedatectl
如果时区不对,cron 会按系统时间执行。
crontab -l
常见错误:
0 2 * * * command(少了用户)✅ 推荐写法:
0 2 * * * /usr/bin/python3 /home/user/test.py >> /tmp/cron.log 2>&1
cron 的环境很少:
PATH=/usr/bin:/bin
解决:
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
chmod +x script.sh
/etc/cron.denygrep CRON /var/log/syslog
或
journalctl -u cron
systemctl list-timers
systemctl status mytimer.timer
启用:
systemctl enable --now mytimer.timer
示例:
[Timer]
OnCalendar=*-*-* 02:00:00
检查:
systemd-analyze calendar "*-*-* 02:00:00"
systemctl status mytask.service
journalctl -u mytask.service
systemctl status atd
atq
没运行:
sudo systemctl start atd
如果你愿意,可以把:
贴出来,我可以直接帮你定位。