温馨提示×

如何启用debian定时器

小樊
44
2026-10-07 17:52:13
栏目: 智能运维

在 Debian 中,“定时器”通常指 systemd timer(系统级定时任务),用来替代传统的 cron。下面按最常见使用方式一步步说明如何启用。


一、确认系统使用 systemd

Debian 8 及以上默认使用 systemd:

systemctl --version

如果没有 systemd(极老系统),请用 cron。


二、创建一个 service(要执行的任务)

例如:每天执行一个脚本 /opt/backup.sh

1. 创建 service 文件

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

内容示例:

[Unit]
Description=Backup Job

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

Type=oneshot 表示执行一次就结束(适合定时任务)


三、创建对应的 timer(定时器)

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

示例 1:每天 03:00 执行

[Unit]
Description=Run backup daily

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

[Install]
WantedBy=timers.target

常见时间写法

写法 含义
OnCalendar= daily 每天
OnCalendar= hourly 每小时
OnCalendar= weekly 每周
OnCalendar=*-*-* 03:00:00 每天 3 点
OnCalendar=Mon *-*-* 04:00:00 每周一 4 点

四、启用并启动定时器

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

五、查看定时器状态

systemctl list-timers
systemctl status backup.timer

查看下次执行时间:

systemctl list-timers backup.timer

六、手动测试(不等待定时器)

sudo systemctl start backup.service

七、常用管理命令

操作 命令
停用 systemctl disable backup.timer
停止 systemctl stop backup.timer
查看日志 journalctl -u backup.service

八、和 cron 的区别(简要)

特性 systemd timer cron
精度 高 分钟级
日志 journald 邮件/文件
依赖管理 强 无
推荐场景 服务类任务 简单脚本

如果你愿意,我可以:

  • 帮你写一个具体场景的 timer
  • 对比 cron vs systemd timer
  • 教你 用户级 timer(不用 root)

只要告诉我用途即可。

0 踩