SaltStack使用教程(三):定时任务管理

先举个添加任务例子:

注释:这里虽然可以创建删除,但是作者不推荐这么用,管理复杂,推荐最下面的文件管理定时任务方法

/usr/sbin/ntpdate pool.ntp.org >>/dev/null 2>&1:
  cron.present:
    - user: root
    - minute: 10
[[email protected] base]# salt ‘saltstack-node2.example.com‘ state.highstate
saltstack-node2.example.com:
----------
          ID: /usr/sbin/ntpdate pool.ntp.org >>/dev/null 2>&1
    Function: cron.present
      Result: True
     Comment: Cron /usr/sbin/ntpdate pool.ntp.org >>/dev/null 2>&1 added to root‘s crontab
     Started: 13:15:35.375887
    Duration: 68.023 ms
     Changes:  
              ----------
              root:
                  /usr/sbin/ntpdate pool.ntp.org >>/dev/null 2>&1
Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1

注解:

minute      #分钟
hour        #小时
daymonth    #日
month       #月
dayweek     #0~6是周一到周六,周日是7

默认执行用户“root”,时间不填写默认是“*”,周期执行“*/2”,随机执行“random”,identifier    是任务标识符,类似于任务ID,更改任务时指定“标识符”可方便修改。

现在就可以用salt查看定时任务

[[email protected]
~]# salt ‘saltstack-node2.example.com‘ cron.raw_cron root

saltstack-node2.example.com:
    # Lines below here are managed by Salt, do not edit
    # SALT_CRON_IDENTIFIER:sync_time
    */10 * * * * /usr/sbin/ntpdate pool.ntp.org >>/dev/null 2>&1

删除定时任务

假如你要添加一个“echo
"test"”的定时任务,结果发现添加错了

[[email protected]
~]#  salt ‘*‘ cron.set_job root ‘1‘ ‘*‘
‘*‘ ‘*‘ ‘*‘ echo "test"

saltstack-node2.example.com:
    new
saltstack-node1.example.com:
    new
You have new mail in /var/spool/mail/root

[[email protected]
~]# salt ‘*‘ cron.raw_cron root

saltstack-node1.example.com:
    * * * * *  /usr/sbin/ntpdate pool.ntp.org
    # Lines below here are managed by Salt, do not edit
    # test
    1 * * * * echo
saltstack-node2.example.com:
    # Lines below here are managed by Salt, do not edit
    # SALT_CRON_IDENTIFIER:sync_time
    */10 * * * * /usr/sbin/ntpdate pool.ntp.org >>/dev/null 2>&1
    # test
    1 * * * * echo

需要这样写

salt      ‘target‘ cron.rm_job user  ${my_cron}  ${exec_crondtion}

[[email protected]
~]# salt ‘saltstack-node2.example.com‘ cron.rm_job root echo minute=‘1‘

saltstack-node2.example.com:

removed

[[email protected]
~]# salt ‘*‘ cron.raw_cron root

saltstack-node1.example.com:
    # Lines below here are managed by Salt, do not edit
    # test
    1 * * * * echo
saltstack-node2.example.com:
    # Lines below here are managed by Salt, do not edit
    # SALT_CRON_IDENTIFIER:sync_time
    */10 * * * * /usr/sbin/ntpdate pool.ntp.org >>/dev/null 2>&1
    
注释:这里虽然可以删除,但是作者不推荐这么用,推荐下面的文件管理定时任务方法

小窍门文件管理定时任务:

在linux里面一切皆文件,centos下是 /var/spool/cron/下的对应文件名就是用户的定时任务

你可以通过管理这些文件来实现任务的管理,但是一定要注意文件权限和属主。

警告:由于是直接通过文件管理的任务,所以salt管理会完全覆盖原来配置的所有内容,所以请谨慎使用。

查看定时任务存在的形式:
[[email protected] ~]# cd /var/spool/cron/
[[email protected] cron]# ls
bai  root
[[email protected] cron]# ll
total 8
-rw------- 1 bai  bai   22 Sep 30 15:17 bai    #这是bai这个用户的定时任务文件,600权限
-rw------- 1 root root 146 Sep 30 14:56 root
 
下面编写状态文件
[[email protected] crontab]# vim test.sls
/var/spool/cron/bai:
  file.managed:
    - source: salt://crontab/files/saltstack-node2.example.com.bai
    - mode: 600
    - user: bai
    - group: bai 
    
执行状态
[[email protected] crontab]# salt ‘saltstack-node2.example.com‘ state.highstate
saltstack-node2.example.com:
----------
          ID: /var/spool/cron/bai
    Function: file.managed
      Result: True
     Comment: File /var/spool/cron/bai updated
     Started: 15:40:33.193250
    Duration: 57.914 ms
     Changes:  
              ----------
              diff:
                  --- 
                  +++ 
                  @@ -1,0 +1,1 @@
                  +* * * * * echo "hello world"
 
Summary
------------
Succeeded: 1 (changed=1)
Failed:    0
------------
Total states run:     1

查看定时任务已创建
[[email protected] crontab]# salt ‘saltstack-node2.example.com‘ cron.raw_cron bai
saltstack-node2.example.com:
    * * * * * echo "hello world"
You have new mail in /var/spool/mail/root
时间: 2024-10-15 00:21:15

SaltStack使用教程(三):定时任务管理的相关文章

BootStrap入门教程 (三) :可重用组件(按钮,导航,标签,徽章,排版,缩略图,提醒,进度条,杂项)

上讲回顾:Bootstrap的基础CSS(Base CSS)提供了优雅,一致的多种基础Html页面要素,包括排版,表格,表单,按钮等,能够满足前端工程师的基本要素需求. Bootstrap作为完整的前端工具集,内建了大量的强大优雅可重用的组件,包括按钮(Button),导航(Navigation),标签(Labels),徽章(Badges),排版(Typography),缩略图( thumbnails),提醒(Alert),进度条(progress bar),杂项(Miscellaneous).

SaltStack简明教程

第1章 SaltStack简明教程 1.1 SaltStack简介 SaltStack是基于Python开发的一套C/S架构配置管理工具(功能不仅仅是配置管理,如使用salt-cloud配置AWS EC2实例),它的底层使用ZeroMQ消息队列pub/sub方式通信,使用SSL证书签发的方式进行认证管理. 号称世界上最快的消息队列ZeroMQ使得SaltStack能快速在成千上万台机器上进行各种操作,而且采用RSA Key方式确认身份,传输采用AES加密,这使得它的安全性得到了保障. SaltS

微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台

原文:微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台 教程导航: 微信开放平台 公众号第三方平台开发 教程一 平台介绍 微信开放平台 公众号第三方平台开发 教程二 创建公众号第三方平台 微信开放平台 公众号第三方平台开发 教程三 一键登录授权给第三方平台 微信开放平台 公众号第三方平台开发 教程四 代公众号调用接口的SDK和demo 公众号第三方平台的开放,是为了让公众号运营者,在面向垂直行业需求时,可以一键登录授权给第三方的公众号运营平台,通过第三方开发者提供的公众号第三

基于PHP的crontab定时任务管理

BY JENNER · 2014年11月10日· 阅读次数:6 linux的crontab一直是服务器运维.业务开展的利器.但当定时任务增多时,管理和迁移都变得很麻烦,而且容易出问题.下面提供了一个使用php编写的crontab管理器,但仍需要在crontab下添加一个一分钟执行一次的叫来来运行这个管理器.通过这个管理器,可以实现以下目的: 分布式定时任务集中化管理 多条crontab记录合并 crontab记录持久化存储(配置文件或数据库) 这里不建议你使用数据库进行crontab配置管理,除

struts2 官方系列教程三:使用struts2 标签 tag

避免被爬,先贴上本帖地址:struts2 官方系列教程一:使用struts2 标签 tag http://www.cnblogs.com/linghaoxinpian/p/6901316.html 本教材假定你已完成了HelloWorld项目,你可以在 struts2 官方系列教程三:使用struts2 标签 tag 下载本章节的代码 在上一节教程中,我们在index.jsp中使用 url tag 创建了一个超链接hello.action 这节我们将探索struts2中其它tags Web应用程

Junit 4 Tutorials(Junit 4 教程) 三、Junit4 断言方法

Junit 4 断言方法允许检查测试方法的期望结果值和真实返回值.Junit的org.junit.Assert类提供了各种断言方法来写junit测试.这些方法被用来检查方法的真实结果值和期望值.下列一些有用的断言方法列表: Junit 4 Assert Methods Method Description assertNull(java.lang.Object object) 检查对象是否为空 assertNotNull(java.lang.Object object) 检查对象是否不为空 as

Swift中文教程(三)--流程控制

原文:Swift中文教程(三)--流程控制 Swift用if和switch编写条件控制语句,用for-in,for,while和do-while编写循环.条件控制语句和循环语句中,小括号是可选的,但花括号包住这个循环体是必须的: 1 let individualScores = [75, 43, 103, 87, 12] 2 var teamScore = 0 3 for score in individualScores { 4 if score > 50 { 5 teamScore += 3

Struts2.x教程(三) Struts2拦截器

一.Struts2拦截器介绍 Struts2拦截器是使用AOP实现的,主要是针对action对象进行拦截,可以在访问action的某个方法.字段之前或之后实施拦截. 可以为action配置多个拦截器,Struts2会将这一组拦截器按照一定顺序组织成一个拦截器栈.action可以直接引用某个拦截器栈来实现配置多个拦截器的目的. 对于继承struts_default的package中的action,都会默认引用name=defaultStack的拦截器栈(在struts_default中定义了Str

jQuery 入门教程(三): Selectors

jQuery Selector 是jQuery库中非常重要的一个组成部分. jQuery Selector 用来选择某个HTML元素,其基本语句和CSS的选择器(Selector)是一样的,所有jQuery selector 都是以$()开始. 选择HTML标记 选择某个HTML元素的方法是直接使用该元素的标记名称,比如选择所有<p>元素 $("p") 下面的例子当用户点击一个按钮时,隐藏所有的<p>元素 $(document).ready(function()

BootStrap入门教程 (三)

上讲回顾:Bootstrap的基础CSS(Base CSS)提供了优雅,一致的多种基础Html页面要素,包括排版,表格,表单,按钮等,能够满足前端工程师的基本要素需求. Bootstrap作为完整的前端工具集,内建了大量的强大优雅可重用的组件,包括按钮(Button),导航(Navigation),标签(Labels),徽章(Badges),排版(Typography),缩略图( thumbnails),提醒(Alert),进度条(progress bar),杂项(Miscellaneous).