object script.execute(object parameters)
Este método permite executar um script em um host ou evento. Exceto para scripts do tipo URL. Estes não são executáveis.
Este método está disponível para usuários de qualquer tipo. As permissões para chamar o método podem ser revogadas nas configurações de função do usuário. Veja Funções de usuário para mais informações.
(object) Parâmetros contendo o ID do script a ser executado, o ID do host ou o ID do evento e o valor de manualinput.
| Parâmetro | Tipo | Descrição |
|---|---|---|
| scriptid | ID | ID do script a ser executado. Comportamento do parâmetro: - obrigatório |
| hostid | ID | ID do host no qual executar o script. Comportamento do parâmetro: - obrigatório se eventid não estiver definido |
| eventid | ID | ID do evento no qual executar o script. Comportamento do parâmetro: - obrigatório se hostid não estiver definido |
| manualinput | string | Valor fornecido pelo usuário para executar o script, substituindo a macro {MANUALINPUT}. |
(object) Retorna o resultado da execução do script.
| Propriedade | Tipo | Descrição |
|---|---|---|
| response | string | Se o script foi executado com sucesso. Valor possível - success. |
| value | string | Saída do script. |
| debug | object | Contém um objeto debug se um script webhook for executado. Para outros tipos de script, contém um objeto vazio. |
Execute um script de webhook que envia uma solicitação HTTP para um serviço externo.
{
"jsonrpc": "2.0",
"method": "script.execute",
"params": {
"scriptid": "4",
"hostid": "30079"
},
"id": 1
}Resposta:
{
"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
}Executar um script "ping" em um host.
{
"jsonrpc": "2.0",
"method": "script.execute",
"params": {
"scriptid": "1",
"hostid": "30079"
},
"id": 1
}Resposta:
{
"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
}Execute um script "ping" com o comando "ping -c {MANUALINPUT} {HOST.CONN}; case $? in [01]) true;; *) false;; esac" em um host.
{
"jsonrpc": "2.0",
"method": "script.execute",
"params": {
"scriptid": "7",
"hostid": "30079",
"manualinput": "2"
},
"id": 1
}Resposta:
{
"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() em ui/include/classes/api/services/CScript.php.