script.execute

Beschreibung

object script.execute(object parameters)

Mit dieser Methode kann ein Skript auf einem Host oder Ereignis ausgeführt werden. Ausgenommen sind Skripte vom Typ URL. Diese sind nicht ausführbar.

Diese Methode ist für Benutzer aller Typen verfügbar. Die Berechtigung, die Methode aufzurufen, kann in den Einstellungen der Benutzerrolle entzogen werden. Weitere Informationen finden Sie unter Benutzerrollen.

Parameter

(object) Parameter, die die ID des auszuführenden Skripts sowie entweder die ID des Hosts oder die ID des Ereignisses und den Wert manualinput enthalten.

Parameter Type Beschreibung
scriptid ID ID des auszuführenden Skripts.

Parameterverhalten:
- erforderlich
hostid ID ID des Hosts, auf dem das Skript ausgeführt wird.

Parameterverhalten:
- erforderlich, wenn eventid nicht gesetzt ist
eventid ID ID des Ereignisses, für das das Skript ausgeführt wird.

Parameterverhalten:
- erforderlich, wenn hostid nicht gesetzt ist
manualinput string Vom Benutzer bereitgestellter Wert, mit dem das Skript ausgeführt wird; ersetzt dabei
das Makro {MANUALINPUT}.

Rückgabewerte

(object) Gibt das Ergebnis der Skriptausführung zurück.

Eigenschaft Type Beschreibung
response string Gibt an, ob das Skript erfolgreich ausgeführt wurde.

Möglicher Wert – success.
value string Skriptausgabe.
debug object Enthält ein debug-Objekt, wenn ein webhook-Skript ausgeführt wird. Für andere Skripttypen enthält es ein leeres Objekt.

Beispiele

Ein webhook-Skript ausführen

Führen Sie ein webhook-Skript aus, das eine HTTP-Anfrage an einen externen Dienst sendet.

Anfrage:

{
    "jsonrpc": "2.0",
    "method": "script.execute",
    "params": {
        "scriptid": "4",
        "hostid": "30079"
    },
    "id": 1
}

Antwort:

{
    "jsonrpc": "2.0",
    "result": {
        "response": "success",
        "value": "{\"status\":\"sent\",\"timestamp\":\"1611235391\"}",
        "debug": {
            "logs": [
                 {
                     "level": 3,
                     "ms": 480,
                     "message": "[Webhook Script] HTTP status: 200."
                 }
             ],
             "ms": 495
        }
    },
    "id": 1
}

Ein benutzerdefiniertes Skript ausführen

Führen Sie ein „ping“-Skript auf einem Host aus.

Anfrage:

{
    "jsonrpc": "2.0",
    "method": "script.execute",
    "params": {
        "scriptid": "1",
        "hostid": "30079"
    },
    "id": 1
}

Antwort:

{
    "jsonrpc": "2.0",
    "result": {
        "response": "success",
        "value": "PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.\n64 bytes from 127.0.0.1: icmp_req=1 ttl=64 time=0.074 ms\n64 bytes from 127.0.0.1: icmp_req=2 ttl=64 time=0.030 ms\n64 bytes from 127.0.0.1: icmp_req=3 ttl=64 time=0.030 ms\n\n--- 127.0.0.1 ping statistics ---\n3 packets transmitted, 3 received, 0% packet loss, time 1998ms\nrtt min/avg/max/mdev = 0.030/0.044/0.074/0.022 ms\n",
        "debug": []
    },
    "id": 1
}

Ein benutzerdefiniertes Skript mit manueller Eingabe ausführen

Führen Sie ein „ping“-Skript mit dem Befehl „ping -c {MANUALINPUT} {HOST.CONN}; case $? in [01]) true;; *) false;; esac“ auf einem Host aus.

Anfrage:

{
    "jsonrpc": "2.0",
    "method": "script.execute",
    "params": {
        "scriptid": "7",
        "hostid": "30079",
        "manualinput": "2"
    },
    "id": 1
}

Antwort:

{
    "jsonrpc": "2.0",
    "result": {
        "response": "success",
        "value": "PING 127.0.0.1 (127.0.0.1) 56(84) bytes of data.\n64 bytes from 127.0.0.1: icmp_seq=1 ttl=64 time=0.051 ms\n64 bytes from 127.0.0.1: icmp_seq=2 ttl=64 time=0.025 ms\n\n--- 127.0.0.1 ping statistics ---\n2 packets transmitted, 2 received, 0% packet loss, time 1021ms\nrtt min/avg/max/mdev = 0.025/0.038/0.051/0.013 ms\n",
        "debug": []
    },
    "id": 1
}

Quelle

CScript::execute() in ui/include/classes/api/services/CScript.php.