温馨提示×

debian定时器怎样配置

小樊
42
2026-09-01 21:10:39
栏目: 智能运维

在 Debian 里,“定时器”通常指 systemd 定时器(systemd timer),这是目前最推荐、最常用的方式(替代传统的 cron)。下面从 cron(老方法)systemd timer(新方法) 两方面说明。


一、使用 systemd 定时器(推荐)

1️⃣ 创建 service 单元

假设你要定时执行 /opt/backup.sh

sudo nano /etc/systemd/system/backup.service

内容:

[Unit]
Description=Backup Script

[Service]
Type=oneshot
ExecStart=/opt/backup.sh

2️⃣ 创建 timer 单元

sudo nano /etc/systemd/system/backup.timer

示例(每天 3:00 执行):

[Unit]
Description=Run backup daily

[Timer]
OnCalendar=*-*-* 03:00:00
Persistent=true

[Install]
WantedBy=timers.target

常用时间写法:

  • 每天:OnCalendar=*-*-* 00:00:00
  • 每小时:OnCalendar=hourly
  • 每 10 分钟:OnCalendar=*:0/10
  • 每周一:OnCalendar=Mon *-*-* 04:00:00

3️⃣ 启用并启动

sudo systemctl daemon-reload
sudo systemctl enable backup.timer
sudo systemctl start backup.timer

4️⃣ 查看状态

systemctl list-timers
systemctl status backup.timer

二、使用 cron(传统方式)

1️⃣ 编辑当前用户定时任务

crontab -e

2️⃣ 添加任务(每天 3 点)

0 3 * * * /opt/backup.sh

格式:

分 时 日 月 周 命令

示例:

  • 每分钟:* * * * *
  • 每 5 分钟:*/5 * * * *
  • 每周日 2 点:0 2 * * 0

3️⃣ 查看任务

crontab -l

三、systemd timer vs cron 对比

特性 systemd timer cron
日志 journalctl /var/log/syslog
精度
依赖管理
推荐度 ✅ 推荐 ⚠️ 老系统

四、常见问题

  • ❌ timer 不执行 → 检查 systemctl status
  • ✅ 脚本无输出 → 用 >> /var/log/xx.log 2>&1
  • ✅ 需要 root → 放 /etc/systemd/system/

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

  • 服务器还是桌面
  • 每天 / 每小时 / 开机后
  • 执行 脚本 / 命令 / 服务

我可以直接帮你写完整配置。

0