温馨提示×

debian定时器如何定时

小樊
46
2026-09-01 21:16:40
栏目: 智能运维

在 Debian(以及大多数现代 Linux 发行版)中,“定时器”通常指 systemd timer(推荐方式),当然也可以用传统的 cron。下面分别说明。


一、使用 systemd timer(推荐)

1. 创建一个 service 单元

例如:每天执行一个脚本 /usr/local/bin/backup.sh

# /etc/systemd/system/backup.service
[Unit]
Description=Backup Service

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

2. 创建对应的 timer 单元

# /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

常见 OnCalendar 示例

  • 每分钟:
    OnCalendar=*-*-* *:*:00
    
  • 每小时:
    OnCalendar=hourly
    
  • 每天 3:30:
    OnCalendar=*-*-* 03:30:00
    
  • 每周一 5:00:
    OnCalendar=Mon *-*-* 05:00:00
    

二、使用 cron(传统方式)

1. 编辑当前用户定时任务

crontab -e

2. 示例(每天 2 点执行)

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

3. 查看定时任务

crontab -l

4. 系统级 cron

  • 系统任务可写在:
    /etc/crontab
    /etc/cron.d/
    
  • 目录方式:
    /etc/cron.daily/
    /etc/cron.hourly/
    

三、systemd timer vs cron 怎么选?

对比项 systemd timer cron
精度 一般
日志 journalctl 邮件/日志
依赖控制
使用难度 稍复杂 简单

服务器/系统服务:推荐 systemd timer
简单脚本/个人任务:cron 更方便


如果你有具体需求(比如“每 5 分钟执行一次”“开机 10 分钟后执行”),可以告诉我,我可以直接帮你写配置。

0