This is the documentation page for an unsupported version of Zabbix.
Is this not what you were looking for? Switch to the current version or choose one from the drop-down menu.

script.create

Description

object script.create(object/array scripts)

This method allows to create new scripts.

This method is only available to Super admin user type. Permissions to call the method can be revoked in user role settings. See User roles for more information.

Parameters

(object/array) Scripts to create.

The method accepts scripts with the standard script properties.

Return values

(object) Returns an object containing the IDs of the created scripts under the scriptids property. The order of the returned IDs matches the order of the passed scripts.

Приклади

Create a webhook script

Create a webhook script that sends HTTP request to external service.

Request:

{
           "jsonrpc": "2.0",
           "method": "script.create",
           "params": {
               "name": "Webhook script",
               "command": "try {\n var request = new HttpRequest(),\n response,\n data;\n\n request.addHeader('Content-Type: application/json');\n\n response = request.post('https://localhost/post', value);\n\n try {\n response = JSON.parse(response);\n }\n catch (error) {\n response = null;\n }\n\n if (request.getStatus() !== 200 || !('data' in response)) {\n throw 'Unexpected response.';\n }\n\n data = JSON.stringify(response.data);\n\n Zabbix.Log(3, '[Webhook Script] response data: ' + data);\n\n return data;\n}\ncatch (error) {\n Zabbix.Log(3, '[Webhook Script] script execution failed: ' + error);\n throw 'Execution failed: ' + error + '.';\n}",
               "type": 5,
               "timeout": "40s",
               "parameters": [
                   {
                       "name": "token",
                       "value": "{$WEBHOOK.TOKEN}"
                   },
                   {
                       "name": "host",
                       "value": "{HOST.HOST}"
                   },
                   {
                       "name": "v",
                       "value": "2.2"
                   }
               ]
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }
Copy
✔ Copied

Response:

{
           "jsonrpc": "2.0",
           "result": {
               "scriptids": [
                   "3"
               ]
           },
           "id": 1
       }
Copy
✔ Copied

Create a SSH script

Create a SSH script with public key authentication that can be executed on a host and has a context menu.

Request:

{
           "jsonrpc": "2.0",
           "method": "script.create",
           "params": {
               "name": "SSH script",
               "command": "my script command",
               "type": 2,
               "username": "John",
               "publickey": "pub.key",
               "privatekey": "priv.key",
               "password": "secret",
               "port": "12345",
               "scope": 2,
               "menu_path": "All scripts/SSH",
               "usrgrpid": "7",
               "groupid": "4"
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }
Copy
✔ Copied

Response:

{
           "jsonrpc": "2.0",
           "result": {
               "scriptids": [
                   "5"
               ]
           },
           "id": 1
       }
Copy
✔ Copied

Create a custom script

Create a custom script that will reboot a server. The script will require write access to the host and will display a configuration message before running in the frontend.

Request:

{
           "jsonrpc": "2.0",
           "method": "script.create",
           "params": {
               "name": "Reboot server",
               "command": "reboot server 1",
               "confirmation": "Are you sure you would like to reboot the server?",
               "scope": 2,
               "type": 0
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }
Copy
✔ Copied

Response:

{
           "jsonrpc": "2.0",
           "result": {
               "scriptids": [
                   "4"
               ]
           },
           "id": 1
       }
Copy
✔ Copied

Create an URL type script

Create an URL type script that for host scope and remains in same window and has confirmation text.

Request:

{
           "jsonrpc": "2.0",
           "method": "script.create",
           "params": {
               "name": "URL script",
               "type": 6,
               "scope": 2,
               "url": "http://zabbix/ui/zabbix.php?action=host.edit&hostid={HOST.ID}",
               "confirmation": "Edit host {HOST.NAME}?",
               "new_window": 0
           },
           "auth": "038e1d7b1735c6a5436ee9eae095879e",
           "id": 1
       }
Copy
✔ Copied

Response:

{
           "jsonrpc": "2.0",
           "result": {
               "scriptids": [
                   "56"
               ]
           },
           "id": 1
       }
Copy
✔ Copied

Source

CScript::create() in ui/include/classes/api/services/CScript.php.

To toggle search highlight, press Ctrl+Alt+H
Have an improvement suggestion for this page? Select the text that could be improved and press Ctrl+Enter to send it to the editors.