salt-job管理
在SaltStack里执行任何一个操作都会在master上产生一个jid号,minion端会在cache目录下的proc目录创建一个以jid为名称的文件,这个文件里内容就是此次操作的记录,当操作完成后自动删除。
salt踢狗salt-run和moudle两种方式来管理JOB
1.通过salt-run来管理job
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | [root@node2 redis-4.0.10] # salt-run -d |grep jobs 'jobs.active:' Return a report on all actively running jobs from a job id centric salt-run jobs.active 'jobs.list_job:' salt-run jobs.list_job 20130916125524463507 'jobs.list_jobs:' List all detectable jobs and associated functions salt-run jobs.list_jobs 'jobs.lookup_jid:' salt-run jobs.lookup_jid 20130916125524463507 salt-run jobs.lookup_jid 20130916125524463507 outputter=highstate 'jobs.print_job:' salt-run jobs.print_job 20130916125524463507 |
2.可以看到此次的任务号。
[root@node2 redis-4.0.10]# salt 'node1' cmd.run 'sleep 100;whoami'
^CExiting on Ctrl-C
This job's jid is:
20181227213754124155
The minions may not have all finished running and any remaining minions will return upon completion. To look up the return data for this job later run:
salt-run jobs.lookup_jid 20181227213754124155
3.查看这个job的运行结果
[root@node2 redis-4.0.10]# salt-run jobs.lookup_jid 20181227213754124155
node1:
root
4.查看这个JOB的详细记录
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | [root@node2 redis-4.0.10] # salt-run jobs.list_job 20181227213754124155 Arguments: - sleep 100; whoami Function: cmd.run Minions: - node1 Result: ---------- node1: ---------- return : root StartTime: 2018, Dec 27 21:37:54.124155 Target: node1 Target- type : glob User: root jid: 20181227213754124155 |
二。通过saltstack module 来管理JOB
2.1 查看module的用法
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 | [root@node2 redis-4.0.10] # salt \* sys.doc saltutil |grep job 'saltutil.find_cached_job:' Return the data for a specific cached job id salt '*' saltutil.find_cached_job <job id > 'saltutil.find_job:' Return the data for a specific job id salt '*' saltutil.find_job <job id > 'saltutil.kill_job:' Sends a kill signal (SIGKILL 9) to the named salt job's process salt '*' saltutil.kill_job <job id > salt '*' saltutil.runner jobs.list_jobs 'saltutil.signal_job:' Sends a signal to the named salt job's process salt '*' saltutil.signal_job <job id > 15 'saltutil.term_job:' Sends a termination signal (SIGTERM 15) to the named salt job's process salt '*' saltutil.term_job <job id > |
2.2. 接着用这个例子去测试
[root@node2 redis-4.0.10]# salt 'node1' cmd.run 'sleep 100;whoami'
[root@node2 redis-4.0.10]# salt 'node1' saltutil.find_job 20181227220403774993
可以直接kill这个job
[root@node2 redis-4.0.10]# salt 'node1' saltutil.kill_job 20181227220403774993
node1:
Signal 9 sent to job 20181227220656122140 at pid 143225
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· 阿里巴巴 QwQ-32B真的超越了 DeepSeek R-1吗?
· 【译】Visual Studio 中新的强大生产力特性
· 10年+ .NET Coder 心语 ── 封装的思维:从隐藏、稳定开始理解其本质意义
· 【设计模式】告别冗长if-else语句:使用策略模式优化代码结构