Wie überprüfe ich die Ausgabe des Salt-Befehls, der im Hintergrund ausgeführt wird?

7

Ich habe ein Salt-Skript, das von jemand anderem geschrieben wurde, der eine Reihe von Befehlen ausführt. Es läuft sehr lange. Meine Verbindung zu dem Computer, auf dem es ausgeführt wird, ist unterbrochen, aber es wird noch ausgeführt. Wie komme ich darauf zurück, um zu sehen, was es tut? Ich habe es nicht mit gestartet screen.

So sieht der Befehl aus:

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

Es gibt eine Reihe von Hosts, die die Rollenanwendung haben und die gut funktionieren. Ich überwache die Ausgabe dessen, was dies tut (in eine Warteschlange verschieben), woanders.

Ich glaube, ich suche nach einer Art " Überprüfen Sie den Status eines laufenden Salt-Skripts ", konnte dies aber in der Dokumentation nicht finden.

Ich renne salt 2014.1.13 (Hydrogen)weiter Ubuntu 14.04.1 LTS.

simbabque
quelle

Antworten:

10

Verwenden Sie den Job-Cache.

Listen Sie zuerst die letzten Jobs mit jobs.activeoder auf jobs.list_jobs.

$ sudo salt-run jobs.list_jobs Hinweis Ich habe hier nur einen Eintrag eingefügt

'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

Holen Sie sich dann die zurückgegebene Ausgabe für eine bestimmte JID:

$ sudo salt-run jobs.lookup_jid 20141204125446199193 | Kopf -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
Dan Garthwaite
quelle