zoukankan      html  css  js  c++  java
  • systemctl timer systemd 设置定时任务

    转载自博客 http://www.ruanyifeng.com/blog/2018/03/systemd-timer.html

    Timer 单元

    定时执行某个Service,必须定义 Timer 单元。

    范例

    /usr/lib/systemd/system目录里面,新建一个mytimer.timer文件,写入下面的内容。

    [Unit]
    Description=Runs mytimer every hour
    [Timer]
    OnUnitActiveSec=1h
    Unit=mytimer.service
    [Install]
    WantedBy=multi-user.target
    

    解释

    这个 Timer 单元文件分成几个部分。
    [Unit]部分定义元数据。

    [Timer]部分定制定时器。Systemd 提供以下一些字段。

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

    上面的脚本里面,OnUnitActiveSec=1h表示一小时执行一次任务。其他的写法还有OnUnitActiveSec=--* 02:00:00表示每天凌晨两点执行,OnUnitActiveSec=Mon --* 02:00:00表示每周一凌晨两点执行,具体请参考官方文档

    查看所有正在运行的定时器

    systemctl list-timers
    

    查看 mytimer.timer 的日志

    journalctl -u mytimer.timer
    
    本人水平有限,还在不断学习中 难免有很多错误或者遗漏,望见谅
  • 相关阅读:
    使用CTE分页 在MSSQL2005上可以使用
    uc_client目录
    用SQL语句添加删除修改字段
    for all your mad scientific needs think geek
    C++:Prototype模式去掉Clone方法
    linux命令:top
    linux命令:time
    C++:运行期断言和编译期断言
    内核分析:EXPORT_SYMBOL解析
    Linux工具:使用SED编辑器
  • 原文地址:https://www.cnblogs.com/faberbeta/p/15662932.html
Copyright © 2011-2022 走看看