执行
描述
object script.execute(object parameters)
此方法允许在某主机或事件上运行脚本。
此方法允许任何用户使用。可以在用户角色设置中撤销调用此方法的权限。更多信息见 User roles。
参数
(对象)
参数包含了运行脚本的ID,以及主机ID或者事件ID。
参数 | 类型 | 描述 |
---|---|---|
scriptid (必需) | string | 运行脚本的ID。 |
hostid | string | 在其上运行脚本的主机ID。 |
eventid | string | 在其上运行脚本的事件ID。 |
返回值
(对象)
返回脚本运行结果。
属性 | 类型 | 描述 |
---|---|---|
response | string | 脚本是否运行成功。 可能的值: success 或 failed . |
value | string | 脚本输出。 |
debug | object | 如果一个webhook脚本被运行,则包含一个调试 对象 。 其他的脚本类型,则包含一个空对象。 |
示例
运行脚本
运行一个向外部服务发送HTTP请求的webhook脚本。 请求:
{
"jsonrpc": "2.0",
"method": "script.execute",
"params": {
"scriptid": "4",
"hostid": "30079"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"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
}
运行脚本
运行一个向外部服务发送HTTP请求的webhook脚本。 请求:
{
"jsonrpc": "2.0",
"method": "script.execute",
"params": {
"scriptid": "4",
"hostid": "30079"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"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"
},
"auth": "038e1d7b1735c6a5436ee9eae095879e",
"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
}
源代码
CScript::execute() 在ui/include/classes/api/services/CScript.php。