在RockyLinux系统中,除了我们熟悉的cron定时任务外,systemd还提供了一种更灵活、更强大的定时机制——定时器(Timer)。其中,单调时间触发(Monotonic Timer)是一种基于系统启动后经过的时间来触发任务的方式,非常适合用于系统初始化后的周期性操作。
本文将详细讲解如何在RockyLinux中设置和使用单调时间触发,即使你是Linux新手,也能轻松上手!
单调时间(Monotonic Time)是指从系统启动开始计算的时间,不受系统时钟调整(如NTP同步或手动修改时间)的影响。使用单调时间触发的定时器,会在系统启动后经过指定时间自动运行任务,非常适合用于:
首先,我们需要创建一个systemd服务单元,这个服务定义了我们要执行的任务。假设我们要每30分钟清理一次/tmp目录下的临时文件,可以创建如下服务文件:
# 创建服务文件sudo vim /etc/systemd/system/clean-tmp.service 在文件中写入以下内容:
[Unit]Description=Clean temporary files in /tmp[Service]Type=oneshotExecStart=/bin/sh -c 'find /tmp -type f -mmin +30 -delete' 接下来,创建一个与服务同名但扩展名为.timer的定时器单元文件:
sudo vim /etc/systemd/system/clean-tmp.timer 在定时器文件中,我们使用OnBootSec和OnUnitActiveSec来设置单调时间触发:
[Unit]Description=Run clean-tmp every 30 minutes after boot[Timer]OnBootSec=5minOnUnitActiveSec=30min[Install]WantedBy=timers.target 参数说明:
OnBootSec=5min:系统启动5分钟后首次触发OnUnitActiveSec=30min:每次任务执行完成后,再过30分钟再次触发保存文件后,重新加载systemd配置,并启用定时器:
# 重新加载systemd配置sudo systemctl daemon-reload# 启用定时器(开机自启)sudo systemctl enable clean-tmp.timer# 立即启动定时器sudo systemctl start clean-tmp.timer 你可以使用以下命令查看所有定时器的状态:
systemctl list-timers --all 输出中会显示你的clean-tmp.timer及其下次触发时间。
sec、min、h、d等,例如10sec、2h。journalctl -u clean-tmp.service查看服务日志。通过本文,你已经学会了如何在RockyLinux中配置基于单调时间触发的systemd定时器。这种方法比传统的cron更可靠,尤其适用于依赖系统运行时长的任务。掌握systemd定时器配置和monotonic timer设置,能让你的系统自动化运维更加高效和稳定。
赶快动手试试吧!如果你有任何疑问,欢迎在评论区留言交流。
本文由主机测评网于2025-12-17发表在主机测评网_免费VPS_免费云服务器_免费独立服务器,如有疑问,请联系我们。
本文链接:https://www.vpshk.cn/2025129008.html