温馨提示×

ubuntu定时器怎样做日志

小樊
40
2026-10-21 13:55:12
栏目: 智能运维

在 Ubuntu 里“定时器”通常指两种东西之一:

  1. systemd 定时器(systemd timer)
  2. cron 定时任务

下面分别说明如何做日志(记录执行日志)。


一、systemd 定时器(推荐,日志最方便)

1. 利用 systemd 自带的日志(最简单)

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

✅ 不需要自己写日志文件


2. 自己写日志文件(可选)

修改 ExecStart:

ExecStart=/bin/bash -c '/opt/myscript.sh >> /var/log/mytimer.log 2>&1'

或脚本内部写日志:

echo "$(date) run" >> /var/log/mytimer.log

二、cron 定时任务日志

1. 重定向输出到日志文件(最常用)

crontab -e

示例:

0 2 * * * /opt/myscript.sh >> /var/log/myscript.log 2>&1

查看:

tail -f /var/log/myscript.log

2. 查看 cron 自身日志

Ubuntu 默认 cron 日志在:

grep CRON /var/log/syslog

(有些版本需要开启 rsyslog)


三、最佳实践建议

✅ 如果是 新系统 / 服务器 → 用 systemd timer + journalctl
✅ 如果是 简单脚本 → cron + 日志文件
✅ 日志建议包含:时间、脚本名、成功/失败

示例日志格式:

echo "$(date '+%F %T') myscript OK" >> /var/log/myscript.log

如果你愿意,可以告诉我:

  • 用的是 cron 还是 systemd timer
  • Ubuntu 版本
  • 脚本内容

我可以帮你写完整示例。

0 踩