温馨提示×

怎么创建debian定时器

小樊
34
2026-09-10 19:21:27
栏目: 智能运维

在 Debian(以及大多数现代 Linux 发行版)中,“定时器”通常指 systemd 的 timer 单元,用来代替传统的 cron。下面我分几种常见情况说明。


一、使用 systemd Timer(推荐方式)

1. 创建一个服务单元(要执行的任务)

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

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

内容:

[Unit]
Description=Backup Script

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

注意:

  • Type=oneshot 表示执行一次就结束
  • 脚本要有可执行权限:chmod +x /opt/backup.sh

2. 创建定时器单元

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

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

[Unit]
Description=Run backup daily

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

[Install]
WantedBy=timers.target

常用时间写法:

  • OnCalendar=*-*-* 03:00:00 每天 3 点
  • OnCalendar=hourly 每小时
  • OnCalendar=weekly 每周
  • OnBootSec=10min 开机后 10 分钟
  • OnUnitActiveSec=1h 上一次运行后 1 小时

3. 启用并启动定时器

sudo systemctl daemon-reexec
sudo systemctl enable --now backup.timer

4. 查看状态

systemctl list-timers
systemctl status backup.timer
journalctl -u backup.service

二、使用 cron(传统方式)

如果你只是想“定时执行命令”,cron 更简单。

crontab -e

示例(每天 3 点):

0 3 * * * /opt/backup.sh

查看:

crontab -l

三、一次性定时任务(at)

sudo apt install at
echo "/opt/backup.sh" | at 03:00

四、该用哪种?

场景 推荐
系统级任务 systemd timer
用户级简单任务 cron
临时任务 at

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

  • 系统任务还是用户任务
  • 执行频率
  • 是否已有脚本

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

0