1. 如何创建一个定时任务,通过systemd系统

  • 1. 如何创建一个定时任务,通过systemd系统

    • 1.1. systemd中的timer
    • 1.2. 自定义定时任务
      • 1.2.1. 具体步骤
      • 1.2.2. [Timer]区块属性详情
    • 1.3. 删除定时器

Linux中,可以使用crontab创建一个定时任务。

首先,创建一个crontab文件,形如

# 每天的6点42分,运行一次spmake脚本
42 6 * * * /home/luzj/bin/spmake

紧接着,执行crontab file即可安装该文件。之后定时任务即开起

使用crontab -l列出所有在crontab管理下的定时任务,crontab -r xxx删除定时任务

1.1. systemd中的timer

systemd通过定义一个timer单元来创建一个定时任务。实际上我们需要做两件事,首先定义一个service单元,
这个service单元定义了我们想定时执行的任务。然后再定义一个timer单元,通过timer单元定义如何定时执行
之前的service单元,比如每1h执行一次、每天5点执行、每个月的16号6点执行等等

1.2. 自定义定时任务

我们自定义一个定时任务——每过30s就向msg.txt输入当前时间

1.2.1. 具体步骤

首先,创建一个mail.sh脚本.

vim mail.sh# 内容
#!/bin/bash
echo `date` >> msg.txt#添加执行权限
chmod +x mail.sh

我们先执行一遍,bash mail.sh,就会看到当前时间被写入msg.txt之中了

创建Service单元.进入/etc/systemd/system目录中,创建mytimer.service文件,

vim mytimer.service#写入内容
[Unit]
Description=mytimer service[Service]
ExecStart=/bin/bash <path>/mail.sh# 这里可以不添加[Install]区块,因为该Service是为Timer单元服务的

之后,启动Service单元,systemctl start mytimer.service.然后就会看到,当前时间
被写入到msg.txt之中了

创建Timer单元.同样的目录,创建mytimer.timer文件,

vim mytimer.timer#内容如下
[Unit]
Description=run mail.sh every 10s[Timer]
OnUnitActiveSec=10s
Unit=mytimer.service[Install]
WantedBy=multi-user.target

启动Timer单元.

systemctl daemon.reload
systemctl enable mytimer.timer
systemctl start mytimer.timer#查看timer运行状态
systemctl status mytimer.timer
tail -f msg.txt # 查看打印情况,每10s会打印一次,我的实测 时间间隔不是很精确哈
journalctl -f -u mytimer.timer # 查看定时器运行日志

1.2.2. [Timer]区块属性详情

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

具体可以看官方文档

1.3. 删除定时器

systemctl disable mytimer.timer #关闭开机启动(即删除目录链接)
systemctl stop mytimer.timer # 关闭单元
systemctl stop mytimer.service#之后删除timer 和Service文件systemctl daemon-reload # 重新加载配置

参考

Systemd 定时器教程-阮一峰

转载于:https://www.cnblogs.com/Franken-Fran/p/timer_make.html

如何创建systemd定时任务相关推荐

  1. navicat创建MySql定时任务详解

    目录 navicat创建MySql 定时任务详解 一.开起定时任务 二.通过navicat创建定时任务 三.关闭.启动.别名.移动.删除event 四.查询Event信息 navicat创建MySql ...

  2. 定时任务:创建静态定时任务、动态定时任务

    定时任务有三种实现 1 jdk自带的定时任务 2 Quartz插件实现的定时任务,需要引入额外的包 3 SpringTask定时调度,是对jdk的再一次封装,不用引入其他包了,用spring的包就自带 ...

  3. SpingBoot中创建动态和静态定时任务

    1,静态定时任务          1,创建静态定时任务类,位置放在启动类同级目录或者子包下面,方便扫描到定时任务类上的注解.  2,静态定时任务类需要三个注解:@Configuration,标记该类 ...

  4. navicat创建mysql定时任务_navicat创建MySql定时任务的方法详解

    navicat创建MySql 定时任务详解 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的" ...

  5. navicat mysql 计划任务_navicat创建MySql定时任务的方法详解

    navicat创建MySql 定时任务详解 事件(event)是MySQL在相应的时刻调用的过程式数据库对象.一个事件可调用一次,也可周期性的启动,它由一个特定的线程来管理的,也就是所谓的" ...

  6. oracle如何创建一个定时任务,怎么创建定时任务

    如何创建定时任务? 本帖最后由 minl 于 2013-11-27 14:16:37 编辑 使用dbms_scheduler这个包,但是创建完后似乎不执行. begin DBMS_SCHEDULER. ...

  7. docker下创建crontab定时任务失败

    创建过程 基础镜像采用的centos7.2,需要安装一下crontab,在dockerfile中加以下语句就可以了: # crontab jobs RUN yum -y install crontab ...

  8. SpringBoot 动态创建多定时任务

    需求: 前端发起Socket请求,订阅K线数据,[参数:1min 5min....] 后端根据参数创建定时任务,并定时将数据推送到前端 实现如下: 实现了socket连接即创建定时任务 socket关 ...

  9. JFinal和JBoot创建一个定时任务

    在Spring环境下, 用SpringTask就可以很好的实现定时任务了, 但是如果是用的JFinal和JBoot, 怎么来实现定时任务呢? 1. 第一种方式 1.1 引入依赖 <!--定时任务 ...

最新文章

  1. MAX487制作RS485总线接口模块
  2. php switch换界面,php switch的“高级”用法详解
  3. pythonweb开发-如何用Python做Web开发?——Django环境配置
  4. 运动学与雅可比矩阵举例
  5. GEEK学习笔记— —程序猿面试宝典笔记(二)
  6. matlab gm 1 1,MATLAB 如何用GM(1,1)做预测?请大神帮忙!
  7. idea系列主题推荐:material theme ui(Dracula)
  8. struts2中改变struts.xml默认路径
  9. nssl1323,jzoj(初中)2107-交流【dfs,容斥,组合数】
  10. Base64的编码实现原理攻略
  11. jira 查找issue_JIRA使用教程:高级搜索—字段参考4/4
  12. 计算机二级考试办公室高级应用考点,全国计算机二级考试MSOFFICE高级应用考点解析Word1...
  13. 鸿蒙电脑操作系统下载,电脑操作系统下载,鸿蒙电脑操作系统下载
  14. Proteus总线连接心得
  15. 关于本博客博皮的几点改进与释疑
  16. 无盘服务器chkdsk *: /f)修复命令,让你的电脑运行更快点 使用CHKDSK/F磁盘修复命令...
  17. HTML和CSS总结(基础版)
  18. Caysn打印机安卓平台开发包接口说明文档及打印示例程序_20170609
  19. VMX(1) -- 简介
  20. 如何快速高效的进入新的知识领域

热门文章

  1. 斯坦福CS224n、CMU NLP公开课 播放地址
  2. Docker学习(六)-----Docker数据卷
  3. sklearn数据处理_one_hot
  4. pytorch系列 -- 9 pytorch nn.init 中实现的初始化函数 uniform, normal, const, Xavier, He initialization...
  5. LeetCode简单题之买卖股票的最‭佳时机
  6. 深度学习模型轻量化(下)
  7. 2021年大数据HBase(六):HBase的高可用!【建议收藏】
  8. 2021年大数据Flink(四十):​​​​​​​Flink模拟双十一实时大屏统计
  9. Django 视图URLconf3.1
  10. Android ScrollView 滑动指定的距离