script.execute
Beschreibung
object script.execute(object parameters)
Mit dieser Methode kann ein Skript auf einem Host oder Ereignis ausgeführt werden. Ausgenommen sind Skripte vom Typ URL. Diese sind nicht ausführbar.
Diese Methode ist für Benutzer aller Typen verfügbar. Die Berechtigung, die Methode aufzurufen, kann in den Einstellungen der Benutzerrolle entzogen werden. Weitere Informationen finden Sie unter Benutzerrollen.
Parameter
(object) Parameter, die die ID des auszuführenden Skripts sowie entweder
die ID des Hosts oder die ID des Ereignisses und den Wert manualinput enthalten.
| Parameter | Type | Beschreibung |
|---|---|---|
| scriptid | ID | ID des auszuführenden Skripts. Parameterverhalten: - erforderlich |
| hostid | ID | ID des Hosts, auf dem das Skript ausgeführt wird. Parameterverhalten: - erforderlich, wenn eventid nicht gesetzt ist |
| eventid | ID | ID des Ereignisses, für das das Skript ausgeführt wird. Parameterverhalten: - erforderlich, wenn hostid nicht gesetzt ist |
| manualinput | string | Vom Benutzer bereitgestellter Wert, mit dem das Skript ausgeführt wird; ersetzt dabei das Makro {MANUALINPUT}. |
Rückgabewerte
(object) Gibt das Ergebnis der Skriptausführung zurück.
| Eigenschaft | Type | Beschreibung |
|---|---|---|
| response | string | Gibt an, ob das Skript erfolgreich ausgeführt wurde. Möglicher Wert – success. |
| value | string | Skriptausgabe. |
| debug | object | Enthält ein debug-Objekt, wenn ein webhook-Skript ausgeführt wird. Für andere Skripttypen enthält es ein leeres Objekt. |
Beispiele
Ein webhook-Skript ausführen
Führen Sie ein webhook-Skript aus, das eine HTTP-Anfrage an einen externen Dienst sendet.
{
"jsonrpc": "2.0",
"method": "script.execute",
"params": {
"scriptid": "4",
"hostid": "30079"
},
"id": 1
}
Antwort:
{
"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
}
Ein benutzerdefiniertes Skript ausführen
Führen Sie ein „ping“-Skript auf einem Host aus.
{
"jsonrpc": "2.0",
"method": "script.execute",
"params": {
"scriptid": "1",
"hostid": "30079"
},
"id": 1
}
Antwort:
{
"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
}
Ein benutzerdefiniertes Skript mit manueller Eingabe ausführen
Führen Sie ein „ping“-Skript mit dem Befehl „ping -c {MANUALINPUT} {HOST.CONN}; case $? in [01]) true;; *) false;; esac“ auf einem Host aus.
{
"jsonrpc": "2.0",
"method": "script.execute",
"params": {
"scriptid": "7",
"hostid": "30079",
"manualinput": "2"
},
"id": 1
}
Antwort:
{
"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
}
Quelle
CScript::execute() in ui/include/classes/api/services/CScript.php.