温馨提示×

怎么写debian定时器脚本

小樊
44
2026-09-23 03:00:10
栏目: 智能运维

在 Debian 里“定时器脚本”通常有两种常见理解,我先分别说明,你按需要选:


一、使用 systemd 定时器(推荐,Debian 9+ 默认)

这是现代 Debian 官方推荐方式,比 cron 更强大。

1️⃣ 写一个服务脚本(真正干活的)

例如:/etc/systemd/system/backup.service

[Unit]
Description=Backup Script

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh

2️⃣ 写一个定时器(控制什么时候跑)

例如:/etc/systemd/system/backup.timer

[Unit]
Description=Run backup daily

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

[Install]
WantedBy=timers.target

3️⃣ 启用并启动

systemctl daemon-reload
systemctl enable --now backup.timer

4️⃣ 查看状态

systemctl list-timers
systemctl status backup.timer

✅ 优点:

  • 可设置开机补跑(Persistent)
  • 日志清晰(journalctl)
  • 支持复杂时间规则

二、使用 cron(传统方式)

适合简单任务。

1️⃣ 写脚本

/usr/local/bin/hello.sh

#!/bin/bash
echo "hello $(date)" >> /var/log/hello.log
chmod +x /usr/local/bin/hello.sh

2️⃣ 编辑定时任务

crontab -e

示例(每天 2 点执行):

0 2 * * * /usr/local/bin/hello.sh

3️⃣ 查看日志

grep CRON /var/log/syslog

三、常见时间写法对照

systemd OnCalendar

  • 每天 3 点:*-*-* 03:00:00
  • 每 10 分钟:*:0/10:00
  • 每周一 5 点:Mon *-*-* 05:00:00

cron

分 时 日 月 周
0 2 * * *   # 每天2点
*/10 * * * * # 每10分钟

四、该怎么选?

场景 推荐
系统级任务 systemd timer
简单脚本 cron
需要日志/失败重试 systemd
用户级任务 cron 或 systemd --user

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

  • 是 系统级还是用户级
  • 想 多久执行一次
  • 跑的是 shell / python / 其他

我可以直接帮你写完整可用的脚本。

0 踩