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