一、引言:

  在日常的运维工作中经常会遇到需要定时定点启动任务,首先会考虑到crontab,但是通过crontab的话需要每台机器下进行设置,这样统一管理的话比较复杂;通过查百度和google发现saltstack有scheduler的功能。

二、Pillar Scheduler:

  Salt本身提供多方面的Scheduler的配置,分别有3种配置方式:

  1、从Master配置端;

  2、Master Pillar端;

  3、Minion配置端或者Minion.d下配置文件下配置

  在这里介绍的是pillar的方式;官方文档:https://docs.saltstack.com/en/latest/topics/jobs/index.html

  首先创建一个/srv/salt/pillar/top.sls

[root@test pillar]# cat /srv/salt/pillar/top.sls
base:
"*":
- schedule

  然后创建/srv/salt/pillar/schedule.sls

[root@test tmp]# cat /srv/salt/pillar/schedule.sls
schedule:
testcase:
function: cmd.run
seconds: 10
args:
- 'date >> /tmp/test.cmd.log'
kwargs:
stateful: False

备注:这个调度任务的意思是:每隔10秒在/tmp目录下的test.cmd.log文件中记录一条时间。

  创建完文件之后执行下面的命令把pillar的修改刷到minion端。

salt "*" saltutil.refresh_pillar

  想查看minion端都有哪些计划任务可以用:

[root@test pillar]# salt "*" pillar.get schedule
192.168.1.88:
----------
__mine_interval:
----------
function:
mine.update
jid_include:
True
maxrunning:
2
minutes:
60
name:
__mine_interval
testcase:
----------
args:
- date >> /tmp/test.cmd.log
function:
cmd.run
jid_include:
True
kwargs:
----------
stateful:
False
maxrunning:
1
name:
testcase
seconds:
10

或者:

[root@test pillar]# salt "*" config.option schedule
192.168.1.88:
----------
__mine_interval:
----------
function:
mine.update
jid_include:
True
maxrunning:
2
minutes:
60
name:
__mine_interval

  config.option的方式只能出mine.update的。

三、运行结果:

[root@test pillar]# tail -f /tmp/test.cmd.log
Tue Mar 21 14:26:58 CST 2017
Tue Mar 21 14:27:08 CST 2017
Tue Mar 21 14:27:18 CST 2017
Tue Mar 21 14:27:28 CST 2017
Tue Mar 21 14:27:38 CST 2017
Tue Mar 21 14:27:48 CST 2017
Tue Mar 21 14:27:58 CST 2017
Tue Mar 21 14:28:08 CST 2017
Tue Mar 21 14:28:18 CST 2017
Tue Mar 21 14:28:28 CST 2017

  

Saltstack之Scheduler的更多相关文章

  1. AndroidStudio3.0无法打开Android Device Monitor的解决办法(An error has occurred on Android Device Monitor)

    ---恢复内容开始--- 打开monitor时出现 An error has occurred. See the log file... ------------------------------- ...

  2. 基于saltstack自动化部署高可用kubernetes集群

    SaltStack自动化部署HA-Kubernetes 本项目在GitHub上,会不定期更新,大家也可以提交ISSUE,地址为:https://github.com/skymyyang/salt-k8 ...

  3. SaltStack远程执行Windows job程序(黑窗口)填坑经过

    近期接到领导通知,要将公司内的所有Windows服务添加到自动发布系统中,由于这种服务很多,节点分布散乱,每次都是由开发主管手动替换(虽然他们自己开发了自动打包替换工具,但仍需要一台一台登陆到服务器上 ...

  4. 从scheduler is shutted down看程序员的英文水平

    我有个windows服务程序,今天重点在测试系统逻辑.部署后,在看系统日志时,不经意看到一行:scheduler is shutted down. 2016-12-29 09:40:24.175 {& ...

  5. Spring 4 + Quartz 2.2.1 Scheduler Integration Example

    In this post we will see how to schedule Jobs using Quartz Scheduler with Spring. Spring provides co ...

  6. VMware中CPU分配不合理以及License限制引起的SQL Scheduler不能用于查询处理

    有一台SQL Server(SQL Server 2014 标准版)服务器中的scheduler_count与cpu_count不一致,如下截图所示: SELECT  cpu_count ,      ...

  7. saltstack初探

    salt-key -y -d linux-node1 #删除linux-node1节点的认证 salt -G 'cpuarch:x86_64' grains.item num_cpus >> ...

  8. saltstack命令执行过程

    saltstack命令执行过程 具体步骤如下 Salt stack的Master与Minion之间通过ZeroMq进行消息传递,使用了ZeroMq的发布-订阅模式,连接方式包括tcp,ipc salt ...

  9. Windows Task Scheduler Fails With Error Code 2147943785

    Problem: Windows Task Scheduler Fails With Error Code 2147943785 Solution: This is usually due to a ...

随机推荐

  1. NSL:CPK_NN神经网络实现预测哪个样本与哪个样本处在同一层,从而科学规避我国煤矿突水灾难—Jason niu

    load water_data.mat attributes = mapminmax(attributes); P_train = attributes(:,1:35); T_train = clas ...

  2. 【python】函数式编程

    No1: 函数式编程:即函数可以作为参数传递,也可以作为返回值  No2: map()函数接收两个参数,一个是函数,一个是Iterable,map将传入的函数依次作用到序列的每个元素,并把结果作为新的 ...

  3. JVM之基本结构

    1. Java虚拟机的架构 1.1 Java的NIO库允许Java程序使用直接内存,访问直接内存的速度优于Java堆.出于性能的考虑,读写频繁的场合会考虑使用直接内存. 1.2 本地方法栈和Java栈 ...

  4. 使用Log4j日志处理

    Springboot日志默认使用的是logback,本文将介绍将springboot项目日志修改为log4j. 首先要将默认的日志依赖排除,然后引用log4j,pom文件代码如下: <?xml ...

  5. SPOJ COT3.Combat on a tree(博弈论 Trie合并)

    题目链接 \(Description\) 给定一棵\(n\)个点的树,每个点是黑色或白色.两个人轮流操作,每次可以选一个白色的点,将它到根节点路径上的所有点染黑.不能操作的人输,求先手是否能赢.如果能 ...

  6. DWM1000 定位数据收发以及定位算法

    蓝点DWM1000 模块已经打样测试完毕,有兴趣的可以申请购买了,更多信息参见 蓝点论坛 正文: DWM1000 定位数据 官方定位程序,建议先学习基础API程序 参考手册: 在手册上提到,目前双向定 ...

  7. IDatabaseInitializer<TContext>接口研究

    MSDN官方文档 DropCreateDatabaseIfModelChanges<TContext> 如果实体模型变化,那么重新创建数据库 DropCreateDatabaseAlway ...

  8. C++学习笔记53:泛型程序设计与C++标准模板库

    泛型程序设计的基本概念 编写不依赖于具体数据类型的程序 将算法从特定的数据结构中抽象出来,成为通用的 C++模板为泛型编程程序设计奠定了关键的基础 模型:符合一个概念的数据类型称为该概念的模型,例如: ...

  9. php curl数据传输神器

    一.curl的概念: curl (Client Url Library Functions) 定义: curl is a command  line tool for transfering data ...

  10. Java 接口 Comparable

    compareTo方法是Comparable接口中唯一的方法.类实现了该接口后表明它的实例具有内在的排序关系.当该对象小于.等于或大于指定对象的时候,分别返回一个负整数.0或者正整数.如果由于指定对象 ...