script.execute

Opis

object script.execute(object parameters)

Ta metoda umożliwia uruchomienie skryptu na hoście lub zdarzeniu. Z wyjątkiem skryptów typu URL. Nie są one wykonywalne.

Ta metoda jest dostępna dla użytkowników dowolnego typu. Uprawnienia do wywołania tej metody mogą zostać cofnięte w ustawieniach roli użytkownika. Więcej informacji znajduje się w sekcji Role użytkowników.

Parametry

(object) Parametry zawierające ID skryptu do uruchomienia oraz albo ID hosta, albo ID zdarzenia i wartość manualinput.

Parametr Type Opis
scriptid ID ID skryptu do uruchomienia.

Zachowanie parametru:
- wymagany
hostid ID ID hosta, na którym ma zostać uruchomiony skrypt.

Zachowanie parametru:
- wymagany, jeśli eventid nie jest ustawione
eventid ID ID zdarzenia, dla którego ma zostać uruchomiony skrypt.

Zachowanie parametru:
- wymagany, jeśli hostid nie jest ustawione
manualinput string Wartość podana przez użytkownika, z którą ma zostać uruchomiony skrypt, zastępująca
makro {MANUALINPUT}.

Zwracane wartości

(object) Zwraca wynik wykonania skryptu.

Właściwość Type Opis
response string Czy skrypt został uruchomiony pomyślnie.

Możliwa wartość - success.
value string Dane wyjściowe skryptu.
debug object Zawiera obiekt debug, jeśli wykonywany jest skrypt webhook. Dla innych typów skryptów zawiera pusty obiekt.

Przykłady

Uruchamianie skryptu webhook

Uruchom skrypt webhook, który wysyła żądanie HTTP do zewnętrznej usługi.

Żądanie:

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

Odpowiedź:

{
    "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
}

Uruchamianie niestandardowego skryptu

Uruchom skrypt „ping” na hoście.

Żądanie:

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

Odpowiedź:

{
    "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
}

Uruchom własny skrypt z ręcznym wprowadzaniem danych

Uruchom skrypt „ping” z poleceniem „ping -c {MANUALINPUT} {HOST.CONN}; case $? in [01]) true;; *) false;; esac” na hoście.

Żądanie:

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

Odpowiedź:

{
    "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
}

Źródło

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