RedHat9创建systemd定时器

一、前言

创建systemd定时器的便捷性主要体现在以下几个方面:

首先,systemd定时器提供了一种统一且标准化的方式来设置和管理定时任务。用户可以通过编辑定时器单元文件来定义任务的执行时间、频率以及要执行的具体命令或脚本。这种方式比传统的cron配置更为直观和易于管理,使得用户可以更轻松地创建、修改和删除定时器。

其次,systemd定时器具有强大的依赖管理和启动顺序控制功能。它可以确保在正确的时间点启动任务,并处理任务之间的依赖关系。这有助于避免由于任务执行顺序不当而导致的错误或冲突,提高了系统的稳定性和可靠性。

此外,systemd定时器还提供了丰富的日志和监控功能。它可以记录定时任务的执行日志,方便用户进行错误排查和性能分析。同时,用户还可以通过systemd的日志管理工具来实时监控任务的执行情况,确保任务按照预期运行。

最后,systemd定时器支持动态调整和执行复杂的调度策略。用户可以根据需要设置任务的优先级、资源限制和超时时间等参数,以满足不同场景下的需求。这使得systemd定时器成为处理复杂定时任务的强大工具。

综上所述,创建systemd定时器提供了便捷的方式来设置和管理定时任务,具有直观易用的配置方式、强大的依赖管理和启动顺序控制功能、丰富的日志和监控功能,以及支持动态调整和复杂调度策略的能力。这些特点使得systemd定时器成为实现任务自动化和系统维护的理想选择。

二、简要说明

1.单调定时器

单调定时器是指从一个特定的时间点开始,经过一段时间后触发执行定时任务的定时器。 这种定时器通常用于系统启动或者systemd服务单元执行的开始时间等场景。 在systemd中,单调定时器是以.timer为后缀名的systemd单元文件,用于控制.service文件或事件。

2.实时定时器

实时定时器是一种用于在特定时间间隔内执行任务的机制。它可以在预定的时间间隔内周期性地触发事件或执行代码。实时定时器通常用于需要按照一定频率执行任务的场景,例如实时数据采集、定时任务调度等。

三、详细步骤

1.创建单调定时器

(1)编写任务脚本文件,这里是一个简单的备份脚本/root/mytimer.sh,仅仅用于示范,内容如下:

vim mytimer.sh

#! /bin/bash

echo  `date`  >>  /tmp/mylog.txt       #此为脚本内容

(2)增加可执行权限,查看日志文件脚本是否执行成功

chmod +x mytimer.sh

ls mytimer.sh

cat /tmp/mylog.txt

 

(3)编写一个配套的服务单元文件,可将其命名为 mytimer.service。

vim mytimer.service

[Unit]
Description=Backup boot
 
[Service]
Type=simple
ExecStart=/bin/bash /root/mytimer.sh

 

(4)编写一个定时器单元文件,可将其命名为mytimer.timer。

vim mytimer.timer

 [Unit]
Description=Run boot backup weekly and on boot
 
[Timer]
OnUnitActiveSec=3s   #设置该定时器所激活的那个服务单元最后一次停止后,间隔3秒再运行一次
AccuracySec=1us  #用于指定定时器触发任务的时间准确度为1微秒

Unit=mytimer.service
 
[Install]
WantedBy=multi-user.target

 

 

 (5)将服务器单元文件和定时器单元文件复制到/etc/systemd/system目录中。

cp mytimer.service  /etc/systemd/system

cp mytimer.timer  /etc/systemd/system

 (6)查看是否复制到/etc/systemd/system目录。

cd  /etc/systemd/system

ls  mytimer*

cat mytimer.service

cat mytimer.timer

(7)由于创建新的单元文件, 执行 systemctl daemon-reload 命令重新装载单元文件。(注意:启动的是.timer文件,而不是.service文件。因为配套的service文件由timer文件启动)

systemctl daemon-reload

(8)执行以下命令使新建的定时器能开机启动,启动定时器并查看mylog.timer服务状态。

systemctl enable mytimer.timer
systemctl start mytimer.timer

systemctl status mytimer.timer

 (9)进入/tmp目录并查看脚本运行结果。

cd  /tmp

tail  -f  mylog.txt

 

2.创建实时定时器

 实时定时器适合按照日历时间的计划任务管理, 这里也以一个定期备份任务为例,要求每周执行一次(如时间为周日2点),且上次未执行就立即执行。实现步骤与上述单调定时器一样, 只是将定时器单元文件修改即可,小编就不重复执行了。其内容符合实时定时器, 修改如下:

[Unit]

Description=Run boot backup weekly

[Timer]

OnCalendar=sun,08:00

Persistent=true

[Install]

WantedBy=multi-user. target

四、总结

systemd定时器是Linux系统中用于自动化和调度定时任务的重要工具。它作为systemd服务管理器的一部分,提供了灵活且可靠的定时任务管理功能。如果这篇博客对大家有所帮助的话,可以点个赞支持一下!

  • 30
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值