温馨提示×

debian定时器怎么写脚本

小樊
38
2026-10-01 21:25:31
栏目: 智能运维

在 Debian(及大多数 Linux 发行版)里,“定时器”一般有两种常见方式:

  1. cron(最常用、最简单)
  2. systemd timer(更现代、更强大)

下面分别说明,并给出写脚本的示例。


一、使用 cron(推荐新手)

1. 编写脚本

比如写一个备份脚本:

#!/bin/bash
# /root/backup.sh

DATE=$(date +%F)
tar -czf /backup/data_$DATE.tar.gz /data

赋予执行权限:

chmod +x /root/backup.sh

2. 编辑定时任务

crontab -e

添加一行(每天凌晨 2 点执行):

0 2 * * * /root/backup.sh

3. cron 时间格式说明

分 时 日 月 周
* * * * *

示例:

  • 每 5 分钟:*/5 * * * *
  • 每天 3:30:30 3 * * *
  • 每周日 0 点:0 0 * * 0

二、使用 systemd timer(Debian 8+ 推荐)

1. 写服务脚本

创建服务文件:

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

内容:

[Unit]
Description=Backup Script

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

2. 写定时器

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

内容(每天 2:00):

[Unit]
Description=Run backup daily

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

[Install]
WantedBy=timers.target

3. 启用定时器

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

查看状态:

systemctl list-timers

三、脚本编写注意事项(很重要)

✅ 脚本里用绝对路径
✅ 开头加 shebang:

#!/bin/bash

✅ 环境变量可能不全,必要时手动 export
✅ 日志输出:

*/5 * * * * /root/backup.sh >> /var/log/backup.log 2>&1

四、怎么选?

场景 推荐
简单定时任务 cron
需要开机补偿、依赖服务 systemd timer
服务器长期运行 两者皆可

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

  • 你想多久执行一次
  • 做什么事(备份 / 清理 / 重启服务)

我可以直接帮你写一份完整脚本 + 定时器配置。

0 踩