如何检查在后台运行的 salt 命令的输出?

如何检查在后台运行的 salt 命令的输出?

我有一个别人写的 salt 脚本,它正在执行一堆命令。它运行了很长时间。我与运行它的机器的连接断了,但它仍在运行。我如何返回它来查看它做了什么?我没有使用 启动它screen

该命令如下所示:

$ salt --subset=1 -C 'G@application:foo and G@roles:application and G@vpc:staging' state.sls foo.commands.application.export

有很多主持人扮演这个角色应用这些东西运行良好。我正在其他地方监控它正在做什么(推送到队列)的输出。

我相信我正在寻找某种“检查正在运行的 salt 脚本的状态“但在文档中找不到它。

我正在salt 2014.1.13 (Hydrogen)奔跑Ubuntu 14.04.1 LTS

答案1

使用作业缓存。

首先列出最近带有jobs.active或 的工作jobs.list_jobs

$ sudo salt-run jobs.list_jobs
注意:这里我只包含一个条目

'20141204125446199193':
  Arguments:
  - salt-ssh production cmd.run_all bash /home/Administrator/bin/weekly-product-build.sh
  Function: cmd.run_all
  StartTime: 2014, Dec 04 12:54:46.199193
  Target: lead
  Target-type: glob
  User: root

然后获取特定 jid 的返回输出:

$ sudo salt-run jobs.lookup_jid 20141204125446199193 | head -22

lead:
    ----------
    pid:
        2301
    retcode:
        0
    stderr:

    stdout:
        production:
            ----------
            pid:
                688
            retcode:
                1
            stderr:
                + case $(date +%a) in
                ++ date +%a
                ++ date -d Thursday +%F
                + TARGET_DATE=2014-12-04
                ++ date -d 2014-12-04 +%Y%m%d
                + ymd=20141204

相关内容