首页 > 其他分享 >定时器

定时器

时间:2023-12-24 13:22:37浏览次数:27  
标签:systemd 定时器 boot timer backup localhost

背景

参数 解释
OnActiveSec 定时器生效后,多少时间开始执行任务
OnBootSec 系统启动后,多少时间开始执行任务
OnStartupSec Systemd 进程启动后,多少时间开始执行任务
OnUnitActiveSec 该单元上次执行后,等多少时间再次执行
OnUnitInactiveSec 定时器上次关闭后多少时间,再次执行
OnCalendar 基于绝对时间,而不是相对时间执行
AccuracySec 如果因为各种原因,任务必须推迟执行,推迟的最大秒数,默认是60秒
Unit 真正要执行的任务,默认是同名的带有.service后缀的单元
Persistent 如果设置了该字段,即使定时器到时没有启动,也会自动执行相应的单元
WakeSystem 如果系统休眠,是否自动唤醒系统

单元描述文件对应的目录

/lib/systemd/system:系统默认的单元文件
/etc/systemd/system:用户安装的软件的单元文件
/usr/lib/systemd/system:用户自己定义的单元文件

查看定时器

使用一下命令查看所有互动定时器

[root@localhost ~]# systemctl list-timers
名字 功能
NEXT 下一次定时器将触发的时间戳
LEFT 下一次定时器触发前还剩下的时间
LAST 上一次定时器触发的时间戳
PASSED 从上一次定时器触发到现在经过的时间
UNIT 定时器单元的名称
ACTIVATES 定时器关联的单元名称
DESCRIPTION 定时器描述信息

如果要查看所有定时器(包括非活动的定时器),则需要加上 --all

 systemctl list-timers --all

创建

单调定时器

编写一个定时器文件,命名为boot_backup.timer,保存在/etc/systemd/system目录下。内容如下:

[Unit]
Description=Run boot backup weekly and on boot

[Timer]
OnBootSec=0     
OnUnitActiveSec=1w   
Unit=boot_backup.service

[Install]
WantedBy=multi-user.target
OnBootSec=0 在启动时触发
OnUnitActiveSec=1w 每隔一周触发
multi-user.target 当系统处于多用户模式(即multi-user.target)时,你的定时器也应该被激活和执行

服务单元

编写服务单元:

[root@localhost ~]# vim /etc/systemd/system/boot_backup.service

内容如下:

[Unit]
Description=Run boot backup weekly and on boot

[Service]
Type=simple
ExecStart=/usr/local/bin/boot_backup

这里的 Type 设置成 simple(默认值)。如果这只成 oneshot ,那么执行一次就会就会退出,系统会关闭定时器。

ExecStart 定义要执行的任务。

脚本

编写脚本

[root@localhost ~]# vim /usr/local/bin/boot_backup

内容

#!/usr/bin/bash
xfsdump -f /opt/dump_boot /boot -L dump_boot -M drive0

赋予权限

[root@localhost ~]# chmod +x /usr/local/bin/boot_backup 

加载

重载单元文件:

[root@localhost ~]# systemctl daemon-reload 

设置开机自启:

[root@localhost ~]# systemctl enable boot_backup.timer 
Created symlink from /etc/systemd/system/multi-user.target.wants/boot_backup.timer to /etc/systemd/system/boot_backup.timer.

启动定时器:

[root@localhost ~]# systemctl start  boot_backup.timer 

查看

可以发现已经多了一个了。

[root@localhost ~]# systemctl list-timers
NEXT                         LEFT          LAST                         PASSED               UNIT                         ACTIVATES
n/a                          n/a           n/a                          n/a                  boot_backup.timer            boot_backu
六 2023-12-23 22:00:00 PST  53min left    六 2023-12-23 21:00:01 PST  6min ago             docker-cleanup.timer         docker-clean
日 2023-12-24 00:00:00 PST  2h 53min left 六 2023-12-23 07:40:05 PST  13h ago              unbound-anchor.timer         unbound-anch
日 2023-12-24 17:01:41 PST  19h left      日 2023-09-10 05:04:40 PDT  3 months 13 days ago systemd-tmpfiles-clean.timer systemd-tmpf

4 timers listed.
Pass --all to see loaded but inactive timers, too.

标签:systemd,定时器,boot,timer,backup,localhost
From: https://www.cnblogs.com/qianyuzz/p/17924277.html

相关文章

  • FreeRTOS中的定时器介绍和使用
    FreeRTOS作为一款流行的嵌入式实时操作系统,提供了强大的任务调度和同步机制。在实时嵌入式系统中,定时器是一项重要的功能,用于执行特定任务、延时操作或周期性执行代码。本文将深入介绍FreeRTOS中的定时器,并提供详细的代码演示,以帮助开发者更好地理解和应用定时器功能。1.定时器的......
  • 51 单片机【外部中断、定时器中断、回调函数】
    51单片机【外部中断、定时器中断、回调函数】​ 这里的外部中断类似监听器,时时刻刻监视某引脚的电平变化;这里的定时器中断类似于定时任务,可以定时执行某函数;这里将回调函数和中断结合起来,案例里有点设计模式的味道(忘了哪个了,也可能就是感觉,关于高层不能调用低层的解决),也有点函数......
  • 嵌入式系统中的低功耗定时器应用与优化实战
    嵌入式系统的开发在现代科技中发挥着至关重要的作用。它们被广泛应用于从智能家居到工业自动化的各种领域。在本文中,我们将聚焦于使用ARMCortex-M系列微控制器实现低功耗定时器的应用。我们将详细介绍在嵌入式系统中如何实现低功耗的定时器功能,并附上代码示例。嵌入式系统低功耗定......
  • STM32中滴答定时器的使用并进行ms和us级延时
    STM32中滴答定时器的使用并进行ms和us级延时滴答定时器(Systick)滴答定时器Systick是stm32内核中的一个系统定时器,是属于内核的外设。滴答定时器是一个24位的倒计数定时器,当计数到0时,会从LOAD寄存器中自动重装载定时初值,开始新一轮计数。在core_cm3.h和core_cm4.h头文件中都会......
  • 定时器PWM输出实验
    定时器PWM输出实验由于是用TIM定时器输出,必涉及到IO口的复用。原理:以上计数方式为例:计数器从零计数到arr(重装载值),此过程中,我们定义一个crr_x,则被分为两种情况:计时器值大于crr_x,计数器值小于crr_x。我们使第二种情况输出低电平,第一种情况输出高电平,就可以得到输出电平。我们调整a......
  • 【go】Go (Golang) 语言-Golang 定时器Timer和Ticker、time.AfterFunc、time.NewTicke
    Golang定时器Timer和TickerGolang定时器包括:一次性定时器(Timer)和周期性定时器(Ticker)。编程中经常会通过timer和ticker、AfterFunc定时器NewTicker是设定每隔多长时间触发的,是连续触发,而计时器NewTimer是等待多长时间触发的,只触发一次,两者是不同的。等待时间函数AfterFunc是......
  • 通用定时器及定时器中断实验
    定时器:顾名思义是用来定时的一个外设。stm32有八个定时器,分三类计数器计数模式又分为三种:向上,向下,向上/下计数。向上:计数器从零计数到自动加载值,然后重新从零开始并产生一个计数器溢出事件。向下:计数器从自动加载值计数到零,然后重新从自动加载值开始并产生一个计数器溢出事件......
  • 内核定时器
    1.节拍器  100hz10ms间隔,jiffies其实就是jiffies_64的低32位  记录系统节拍树,因为是32位所以记录最大值为4294967296(个节拍,也就是这么多个10ms) 4294967296/100/60/60/24= 49.7天 就会归零,也叫绕回  可以用相关的API函数处理,实现定时一秒的节拍数是HZ特点:......
  • 05-定时器
    05-定时器背景资料51单片机的定时器属于单片机的内部资源,其电路的连接和运转均在单片机内部完成。前面介绍的独立按键、led灯都属于外设。定时器的作用用于计时系统,可实现软件计时,或者使程序每隔一固定时间完成一项操作替代长时间的Delay,提高CPU的运行效率和处理速度...S......
  • 定时器训练(UAV2101~UAV2105)
    例子001、51单片机定时器训练下面是一份基本的51定时器控制代码#include<reg52.h>//8051头文件//定义时钟频率为12MHz#defineFOSC12000000UL//定义波特率为9600#defineBAUDRATE9600//定义定时器重装值#defineTIMER_RELOAD_VALUE65535-50000+1sbitLE......