script.execute

Descrizione

object script.execute(object parameters)

Questo metodo consente di eseguire uno script su un host o un evento. Fanno eccezione gli script di tipo URL. Questi non sono eseguibili.

Questo metodo è disponibile per utenti di qualsiasi tipo. Le autorizzazioni per chiamare il metodo possono essere revocate nelle impostazioni del ruolo utente. Per ulteriori informazioni, vedere Ruoli utente.

Parametri

(object) Parametri contenenti l'ID dello script da eseguire, oppure l'ID dell'host o l'ID dell'evento e il valore manualinput.

Parametro Type Descrizione
scriptid ID ID dello script da eseguire.

Comportamento del parametro:
- obbligatorio
hostid ID ID dell'host su cui eseguire lo script.

Comportamento del parametro:
- obbligatorio se eventid non è impostato
eventid ID ID dell'evento su cui eseguire lo script.

Comportamento del parametro:
- obbligatorio se hostid non è impostato
manualinput string Valore fornito dall'utente con cui eseguire lo script, in sostituzione della macro
{MANUALINPUT}.

Valori restituiti

(object) Restituisce il risultato dell'esecuzione dello script.

Proprietà Type Descrizione
response string Indica se lo script è stato eseguito correttamente.

Valore possibile - success.
value string Output dello script.
debug object Contiene un oggetto debug se viene eseguito uno script webhook. Per altri tipi di script, contiene un oggetto vuoto.

Esempi

Eseguire uno script webhook

Eseguire uno script webhook che invia una richiesta HTTP a un servizio esterno.

Request:

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

Risposta:

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

Eseguire uno script personalizzato

Eseguire uno script "ping" su un host.

Richiesta:

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

Risposta:

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

Eseguire uno script personalizzato con input manuale

Eseguire uno script "ping" con il comando "ping -c {MANUALINPUT} {HOST.CONN}; case $? in [01]) true;; *) false;; esac" su un host.

Richiesta:

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

Risposta:

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

Fonte

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