script.execute

Descripció

object script.execute(object parameters)

Aquest mètode permet executar un script a un equip o esdeveniment; excepte per scripts de tipus URL, que aquests no són pas executables.

Aquest mètode és disponible per a qualsevol mena d'usuaris. Els permisos per cridar al mètode es poden revocar a la configuració de rols d'usuaris. Per a més informació, veieu Rols d'usuari.

Paràmetres

(object) Paràmetres que contenen l'ID de l'script a executar i l'ID de l'equip o l'ID de l'esdeveniment.

Paràmetre Tipus Descripció
scriptid ID ID de l'script a executar.

Comportament de la propietat:
- obligatori
hostid ID ID de l'equip on executar l'script.

Comportament de la propietat:
- obligatori si no s'ha definit eventid
eventid ID ID de l'esdeveniment on executar l'script.

Comportament de la propietat:
- obligatori si no s'ha definit pas hostid
manualinput string Valor entrat per l'usuari per on executar l'script, subsituïnt
la macro {MANUALINPUT}.

Valors de retorn

(object) Retorna el resultat de l'execució de l'script.

Propietat Tipus Descripció
response string Indica si l'script s'ha executat correctament.

Valor possible: success.
value string Sortida de l'script.
debug object Conté un objecte de depuració si s'executa un script webhook. Per a altres tipus d'script, conté un objecte buit.

Exemples

Executar un scrupt de webhook

Executa un script webhook que envia una petició HTTP a un servei extern.

Petició:

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

Resposta:

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

Executar un script fet a mida

Executar un script "ping" sobre un equip.

Petició:

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

Resposta:

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

Execució d'un script personalitzat amb entrada manual

Executa un script "ping" amb l'ordre "ping -c {MANUALINPUT} {HOST.CONN}; caes $? in [01]) true;; *) false;; esac" a un equip.

Petició:

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

Resposta:

{
           "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",
               "debug": []
           },
           "id": 1
       }

Font

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