RockyLinux定时器单元文件编写(手把手教你用systemd定时器替代cron)

来源:这里教程网 时间:2026-03-25 20:27:34 作者:

在RockyLinux系统中,除了传统的

cron
工具外,systemd 定时器(timer) 是一种更现代、功能更强大的定时任务管理方式。本教程将从零开始,教您如何编写和使用 RockyLinux 定时器单元文件,即使是 Linux 新手也能轻松上手。

什么是 systemd 定时器?

systemd
是 RockyLinux 默认的初始化系统和服务管理器。它不仅用于启动服务,还提供了
.timer
单元来替代或补充传统的
cron
。相比 cron,systemd 定时器具有以下优势:

与系统日志(journalctl)无缝集成,便于调试 支持精确到微秒的时间控制 可设置开机后延迟执行、随机延迟等高级选项 依赖关系管理更清晰(例如:等待网络就绪后再执行)

基本组成:两个单元文件

每个 systemd 定时任务由两个文件组成:

服务单元(.service):定义要执行的实际命令或脚本。 定时器单元(.timer):定义何时触发该服务。

这两个文件必须同名,只是扩展名不同。例如:

backup.service
backup.timer

实战:创建一个每日备份脚本的定时器

假设我们要每天凌晨2点执行一个备份脚本

/opt/scripts/backup.sh

第1步:编写服务单元文件

创建文件

/etc/systemd/system/backup.service

[Unit]Description=Daily Backup Script[Service]Type=oneshotExecStart=/bin/bash /opt/scripts/backup.shUser=root

第2步:编写定时器单元文件

创建文件

/etc/systemd/system/backup.timer

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

关键参数说明:

OnCalendar=
:使用类似 cron 的语法,但更灵活。这里表示每天 02:00 执行。
Persistent=true
:如果系统在预定时间关机,开机后会立即补执行一次。
WantedBy=timers.target
:确保定时器在系统启动时被激活。

第3步:启用并启动定时器

运行以下命令:

# 重新加载 systemd 配置sudo systemctl daemon-reload# 启用并启动定时器sudo systemctl enable --now backup.timer

第4步:验证定时器状态

查看所有活动的定时器:

systemctl list-timers --all

查看服务日志(用于调试):

journalctl -u backup.service -f

常见 OnCalendar 时间格式示例

表达式 含义 *-*-* 03:00:00 每天凌晨3点 Mon *-*-* 09:00:00 每周一上午9点 *-*-01 00:00:00 每月1号午夜 hourly 每小时(简写)

总结

通过本教程,您已经掌握了在 RockyLinux 中使用 systemd 定时器 创建自动化任务的方法。相比传统 cron,systemd 定时器提供了更强大的功能和更好的系统集成体验。无论是日常运维、数据备份还是日志清理,合理使用 定时任务配置 都能极大提升您的 RockyLinux系统管理 效率。

现在,您可以尝试创建自己的定时器单元文件,让系统自动为您工作!

相关推荐

热文推荐