debian

Debian定时器如何配置文件

小樊
34
2025-11-11 05:54:26
栏目: 智能运维

Debian 系统中定时器的主流配置方式:systemd 定时器
Debian(尤其是10及以上版本)推荐使用systemd定时器替代传统cron,其配置文件分为服务单元文件(定义任务内容)和定时器单元文件(定义触发规则),均存放在/etc/systemd/system/目录下(系统级)。

一、systemd 定时器配置文件组成

systemd 定时器由两个关联文件组成:

  1. 服务单元文件(.service):定义要执行的任务(如脚本、命令),格式如下:

    [Unit]
    Description=任务描述(如"Daily Backup Task"[Service]
    Type=oneshot  # 一次性任务(如备份);若需循环任务(如每分钟检查),可改为"simple"
    ExecStart=/绝对路径/脚本或命令  # 必须使用绝对路径(如/usr/local/bin/backup.sh)
    

    示例:创建每日凌晨2点执行的备份服务,文件路径为/etc/systemd/system/daily-backup.service

    [Unit]
    Description=Daily Backup Task
    
    [Service]
    Type=oneshot
    ExecStart=/home/user/scripts/backup.sh
    

    注:脚本需提前赋予执行权限(chmod +x /home/user/scripts/backup.sh)。

  2. 定时器单元文件(.timer):定义任务的触发时间规则,格式如下:

    [Unit]
    Description=定时器描述(如"Run Daily Backup at 2 AM"[Timer]
    OnCalendar=*-*-* 02:00:00  # 触发时间(核心字段,详见下文)
    Persistent=true            # 若系统在触发时间关机,开机后补执行
    
    [Install]
    WantedBy=timers.target     # 启用定时器的目标(必须)
    
    • OnCalendar字段:支持多种时间格式,常见示例如下:
      格式 含义 示例
      *-*-* HH:MM:SS 每天固定时间执行 *-*-* 02:00:00(每天凌晨2点)
      Mon*-*-* HH:MM:SS 每周一固定时间执行 Mon*-*-* 09:00:00(每周一9点)
      *-*-01 00:00:00 每月1号执行 *-*-01 03:00:00(每月1号3点)
      *-*-* 17:00:00/1h 每天17:00-19:00每小时执行 *-*-* 17:00:00/1h(17-19点每小时)
      @daily 每天00:00执行 @daily(等价于*-*-* 00:00:00
      @weekly 每周日00:00执行 @weekly(等价于*-*-* 00:00:00,星期日为0)
      @hourly 每小时执行 @hourly(等价于*-*-* *:00:00

    示例:创建每小时触发一次的定时器,文件路径为/etc/systemd/system/daily-backup.timer

    [Unit]
    Description=Run Daily Backup at 2 AM
    
    [Timer]
    OnCalendar=*-*-* 02:00:00
    Persistent=true
    
    [Install]
    WantedBy=timers.target
    

二、systemd 定时器配置步骤

  1. 创建服务单元文件
    使用文本编辑器(如nano)创建.service文件,填入任务内容并保存:

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

    输入上述服务单元文件内容,保存退出。

  2. 创建定时器单元文件
    使用文本编辑器创建.timer文件,填入触发规则并保存:

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

    输入上述定时器单元文件内容,保存退出。

  3. 启用并启动定时器
    执行以下命令使定时器生效:

    sudo systemctl enable --now daily-backup.timer
    
    • enable:设置定时器开机自启;
    • --now:立即启动定时器(无需等待下次开机)。

三、systemd 定时器管理命令

四、传统定时任务工具:cron(可选)

若仍需使用传统cron,配置文件路径如下:

注:cron配置需注意绝对路径(避免相对路径问题),日志可通过/var/log/syslog查看。

0
看了该问题的人还看了