system定时器任务指南

文章目录

前言

       systemd定时器是Linux系统中一种强大的定时任务管理工具,它利用systemd服务管理器的功能,为用户提供了灵活且可靠的定时任务调度机制。通过systemd定时器,用户可以轻松定义、配置和触发定时任务,实现各种自动化需求。

     在现代的系统管理中,定时任务扮演着至关重要的角色。无论是定期备份重要数据、监控服务器状态,还是执行周期性的系统维护任务,都需要一个可靠且高效的定时任务管理器。systemd定时器正是为了满足这些需求而设计的,它具备高精度的时间控制、易于管理的配置界面以及强大的功能扩展性。

      通过本指南,我们将详细介绍如何生成和使用systemd定时器。我们将从定时器的基本概念开始,逐步引导您了解如何编写任务脚本、创建服务单元文件和定时器单元文件,以及如何启动和启用定时器。此外,我们还将分享一些最佳实践和优化建议,帮助您更好地利用systemd定时器的功能,提高系统管理的效率和自动化水平。

     无论您是系统管理员、开发人员还是运维工程师,只要您需要在Linux系统中设置定时任务,本指南都将为您提供宝贵的参考和帮助。让我们一起探索systemd定时器的世界,实现更高效的自动化管理吧!

一、systemd定时器单元文件介绍

        systemd定时器单元文件是Linux系统中用于配置和管理定时任务的重要组件。这些文件通常以.timer后缀结尾,并存储在特定的目录中,如/etc/systemd/system/usr/lib/systemd/system

       systemd定时器单元文件主要由几个关键部分组成。其中,[Unit]部分用于指定定时器的基本配置,如描述信息、依赖关系等。这些配置帮助systemd了解定时器的性质和所需的环境。

       另一个重要的部分是[Timer],它定义了定时器的触发规则。这些规则包括定时器的启动延迟、执行间隔等设置。常用的配置项有OnActiveSecOnBootSecOnCalendar等。例如,OnActiveSec指定当服务单元进入活动状态时触发定时器,而OnBootSec则指定在系统引导时触发定时器。这些配置项允许用户精确地控制定时任务的执行时间和频率。

        此外,systemd定时器单元文件还可以与其他systemd单元文件进行交互。例如,每一个.timer文件通常都需要有一个对应的.service文件存在,这样定时器才能控制该服务的运行。默认情况下,如果Timer和Service的文件名(不包含扩展名)相同,则.timer文件会控制.service文件的执行。当然,文件名也可以不同,这时需要在.timer文件的[Timer]部分内配置Unit选项,指定要控制的.service文件名。 总的来说,systemd定时器单元文件为Linux系统中的定时任务提供了强大而灵活的配置方式。通过合理地编写和配置这些文件,用户可以轻松地实现各种自动化需求,提高系统管理的效率和可靠性。常用的配置项包括OnActiveSec、OnBootSec、OnCalendar、OnUnitActiveSec等

       总的来说,systemd定时器单元文件为Linux系统中的定时任务提供了强大而灵活的配置方式。通过合理地编写和配置这些文件,用户可以轻松地实现各种自动化需求,提高系统管理的效率和可靠性。

二、创建systemd定时器

1.创建一个任务脚本

   1.创建脚本

vim tt.sh
#!/bin/bash
echo "time is money" >> root/time.txt

2.将该脚本放置到time文件下,创建time.txt文件,并给脚本赋权

每个定时器单元都必须有一个与其匹配的服务单元(.service),用于在特定的时间启动。

2.创建一个服务单元文件(.service)

1.在/etc/systemd/system目录中创建.service文件

vim /etc/systemd/system/time.service

[Unit]
Description=date daemon
[Service]
Type=simple
ExecStart=/root/tt.sh
[Install]
WantedBy=multi-user.target
3.创建定时器单元文件(.timer)

1.在/etc/systemd/system目录中创建.timer文件

vim /etc/systemd/system/time.timer

[Unit]
Description=RUN time ever second

[Timer]
OnUnitActiveSec=3s
AccuracySec=1ms

[Install]
WantedBy=multi-user.target
4.重新加载文件
5.设置开机自启动

systemctl enable time.timer
 6.启动定时器
 systemctl start time.timer

getenforce #用于查看当前系统的 SELinux 工作模式,在SELinux中,有三种工作模式:enforcing(执行模式)、permissive(宽容模式)、disabled(禁用模式)

如果输入getenforce 输出enforcing,如下图 

则输入setenforce 0

setenforce 0 

永久关闭需要改写文件

vim /etc/selinux/config

将SELINUX=enforcing改为SELINUX=disabled

7.查看定时器状态

systemctl status time.timer

 

8.tail -f hello.txt #查看是否成功

  • 25
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值