object script.execute(object parameters)
Este método permite ejecutar un script en un equipo o evento. Excepto para scripts de tipo URL. Esos no son ejecutables.
Este método está disponible para usuarios de cualquier tipo. Los permisos para llamar al método se pueden revocar en la configuración de roles de usuario. Ver Roles de usuario para obtener más información.
(objeto)
Parámetros que contienen el ID del script a ejecutar y el ID del equipo o el ID del evento.
Parámetro | Tipo | Descripción |
---|---|---|
scriptid | cadena | ID del script a ejecutar. Comportamiento del parámetro: - requerido |
hostid | cadena | ID del equipo en el que se ejecutará el script. Comportamiento del parámetro: - obligatorio si eventid es no establecido |
eventid | cadena | ID del evento en el que se ejecutará el script. Comportamiento del parámetro: - obligatorio si hostid es no establecido |
(objeto)
Devuelve el resultado de la ejecución del script.
Propiedad | Tipo | Descripción |
---|---|---|
response | cadena | Si el script se ejecutó correctamente. Valor posible: éxito . |
value | cadena | Salida del script. |
debug | object | Contiene un objeto de depuración si se ejecuta un script de webhook. Para otros tipos de script, contiene un objeto vacío. |
Ejecute un script de webhook que envíe una solicitud HTTP a un servicio externo.
{
"jsonrpc": "2.0",
"method": "script.execute",
"params": {
"scriptid": "4",
"hostid": "30079"
},
"id": 1
}
Respuesta:
{
"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
}
Ejecute un script de "ping" en un equipo.
{
"jsonrpc": "2.0",
"method": "script.execute",
"params": {
"scriptid": "1",
"hostid": "30079"
},
"id": 1
}
Respuesta:
{
"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
}
Run a "ping" script with command "ping -c {MANUALINPUT} {HOST.CONN}; case $? in [01]) true;; *) false;; esac" on a host.
{
"jsonrpc": "2.0",
"method": "script.execute",
"params": {
"scriptid": "7",
"hostid": "30079",
"manualinput": "2"
},
"id": 1
}
Response:
{
"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
}
CScript::execute() en ui/include/classes/api/services/CScript.php.