web-dev-qa-db-ja.com

バックグラウンドで実行されるsaltコマンドの出力を確認するにはどうすればよいですか?

たくさんのコマンドを実行している他の誰かが作成したソルトスクリプトを持っています。それは非常に長い時間実行されます。それを実行するマシンへの接続が切断されましたが、まだ実行中です。どのようにして、それが何をしているのかを確認するために戻るのですか? screenを使用して起動しませんでした。

コマンドは次のようになります。

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

applicationの役割を持つホストがたくさんあり、それらはうまく機能しています。私はこれがどこかで実行していることの出力を監視しています(キューにプッシュ)。

実行中のsaltスクリプトのステータスを確認する」を探していると思いますが、ドキュメントでは見つかりませんでした。

_Ubuntu 14.04.1 LTS_でsalt 2014.1.13 (Hydrogen)を実行しています。

7
simbabque

ジョブキャッシュを使用します。

最初に、jobs.activeまたはjobs.list_jobsを使用して最近の求人をリストします。

$ Sudo salt-run jobs.list_jobs
ここには1つのエントリしか含めていないことに注意してください

'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 |頭-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
10
Dan Garthwaite