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