在 Ubuntu 里“定时器”通常指两种东西之一:
下面分别说明如何做日志(记录执行日志)。
systemd timer 对应的 service 单元 输出会自动进入 journald。
示例:
# /etc/systemd/system/mytimer.service
[Unit]
Description=My Timer Task
[Service]
Type=oneshot
ExecStart=/opt/myscript.sh
# /etc/systemd/system/mytimer.timer
[Unit]
Description=Run my script daily
[Timer]
OnCalendar=*-*-* 02:00:00
Persistent=true
[Install]
WantedBy=timers.target
启用:
systemctl daemon-reload
systemctl enable --now mytimer.timer
查看日志:
journalctl -u mytimer.service
journalctl -u mytimer.service -f
✅ 不需要自己写日志文件
修改 ExecStart:
ExecStart=/bin/bash -c '/opt/myscript.sh >> /var/log/mytimer.log 2>&1'
或脚本内部写日志:
echo "$(date) run" >> /var/log/mytimer.log
crontab -e
示例:
0 2 * * * /opt/myscript.sh >> /var/log/myscript.log 2>&1
查看:
tail -f /var/log/myscript.log
Ubuntu 默认 cron 日志在:
grep CRON /var/log/syslog
(有些版本需要开启 rsyslog)
✅ 如果是 新系统 / 服务器 → 用 systemd timer + journalctl
✅ 如果是 简单脚本 → cron + 日志文件
✅ 日志建议包含:时间、脚本名、成功/失败
示例日志格式:
echo "$(date '+%F %T') myscript OK" >> /var/log/myscript.log
如果你愿意,可以告诉我:
我可以帮你写完整示例。