在 CentOS 系统中,除了传统的 cron 工具外,systemd 提供了一种更现代、更灵活的定时任务机制——systemd 定时器(timer)。本文将从零开始,详细讲解如何创建和使用 CentOS 定时器单元文件,即使你是 Linux 新手,也能轻松掌握!
systemd 定时器是 systemd 的一部分,它通过两个配套的单元文件协同工作:
相比 cron,systemd 定时器支持更精确的时间控制(如秒级)、日志集成、依赖管理等高级功能。
假设我们要每分钟向日志文件写入当前时间。首先创建一个脚本:
$ sudo mkdir -p /opt/scripts$ sudo tee /opt/scripts/log_time.sh << 'EOF'#!/bin/bashecho "[$(date)] 定时任务执行成功!" >> /var/log/my_timer.logEOF$ sudo chmod +x /opt/scripts/log_time.sh
这个文件告诉 systemd 要运行什么命令。创建 /etc/systemd/system/log_time.service:
[Unit]Description=记录当前时间到日志文件[Service]ExecStart=/opt/scripts/log_time.shType=oneshot
保存后,执行以下命令重载 systemd 配置:
$ sudo systemctl daemon-reload 现在创建对应的定时器文件 /etc/systemd/system/log_time.timer:
[Unit]Description=每分钟执行一次 log_time.service[Timer]OnCalendar=*-*-* *:*:00Persistent=true[Install]WantedBy=timers.target
其中 OnCalendar 使用了 systemd 的时间语法:*-*-* *:*:00 表示“每分钟的第 0 秒”执行。更多时间格式可参考 man systemd.time。
执行以下命令启用并启动定时器:
$ sudo systemctl enable --now log_time.timer 检查状态:
$ systemctl status log_time.timer$ journalctl -u log_time.service -f
systemctl list-timers。OnBootSec=30 表示开机 30 秒后执行)。journalctl 查看,便于调试。通过本文,你已经学会了如何在 CentOS 中使用 systemd 定时器单元文件来管理定时任务。这种方法比传统 cron 更强大、更易维护,特别适合现代 Linux 系统管理。掌握 CentOS定时器、systemd timer、Linux定时任务 和 CentOS系统管理 这些核心技能,将大大提升你的运维效率!
提示:实际部署前,请务必测试脚本逻辑,并确保权限设置正确。
本文由主机测评网于2025-12-02发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025122050.html