object script.execute(object parameters)
このメソッドは、ホストまたはイベント上でスクリプトを実行することを可能にします。URLタイプのスクリプトは除きます。それらは実行できません。
このメソッドは、どのタイプのユーザーでも利用できます。 メソッドの呼び出し権限は、ユーザーロールの設定で取り消すことができます。詳細はユーザーロールを参照してください。
(object) 実行するスクリプトのID、ホストのID、またはイベントのIDとmanualinput値を含むパラメーター。
| パラメーター | タイプ | 説明 |
|---|---|---|
| scriptid | ID | 実行するスクリプトのID。 パラメーターの動作: - 必須 |
| hostid | ID | スクリプトを実行するホストのID。 パラメーターの動作: - eventidが設定されていない場合は必須 |
| eventid | ID | スクリプトを実行するイベントのID。 パラメーターの動作: - hostidが設定されていない場合は必須 |
| manualinput | string | スクリプトを実行するためにユーザーが指定した値。 {MANUALINPUT}マクロを置き換えます。 |
(object) スクリプト実行の結果を返します。
| プロパティ | タイプ | 説明 |
|---|---|---|
| response | string | スクリプトが正常に実行されたかどうか。 可能な値 - success。 |
| value | string | スクリプトの出力。 |
| debug | object | Webhookスクリプトが実行された場合、debug オブジェクトを含みます。他のスクリプトタイプの場合は空のオブジェクトを含みます。 |
外部サービスにHTTPリクエストを送信するWebhookスクリプトを実行します。
{
"jsonrpc": "2.0",
"method": "script.execute",
"params": {
"scriptid": "4",
"hostid": "30079"
},
"id": 1
}レスポンス:
{
"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
}ホストで "ping" スクリプトを実行します。
{
"jsonrpc": "2.0",
"method": "script.execute",
"params": {
"scriptid": "1",
"hostid": "30079"
},
"id": 1
}レスポンス:
{
"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
}ホスト上でコマンド"ping -c {MANUALINPUT} {HOST.CONN}; case $? in [01]) true;; *) false;; esac"を使用して "ping" スクリプトを実行します。
{
"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() in ui/include/classes/api/services/CScript.php.