diff --git a/examples/system_script.php b/examples/system_script.php new file mode 100644 index 0000000..c69c9c5 --- /dev/null +++ b/examples/system_script.php @@ -0,0 +1,77 @@ + 1, + 'host' => '127.0.0.1', + 'user' => 'admin', + 'pass' => 'admin' +]); + +/* + * Create script for automation + */ + +// Wrong way (RouterOS don't understand line termination symbol) +$query = + (new Query('/system/script/add')) + ->equal('name', 'test_by_system1') + ->equal('source', 'monitoring') + ->equal('source', ':local monitor [/interface monitor-traffic ether2 as-value once] \r\n +:local speedRX ($monitor->"rx-bits-per-second")\r\n +:local speedTX($monitor->"tx-bits-per-second")\r\n +/tool fetch mode=http url=("http://192.168.254.72/micro-nms/storebw/1/$speedTX/$speedRX") keep-result=no'); + +$response = $client->query($query)->read(); +print_r($response); + +// Okay way (command in one line) +$query = + (new Query('/system/script/add')) + ->equal('name', 'test_by_system2') + ->equal('source', 'monitoring') + ->equal('source', + ':local monitor [/interface monitor-traffic ether2 as-value once] \r\n:local speedRX ($monitor->"rx-bits-per-second")\r\n:local speedTX($monitor->"tx-bits-per-second")\r\n/tool fetch mode=http url=("http://192.168.254.72/micro-nms/storebw/1/$speedTX/$speedRX") keep-result=no'); + +$response = $client->query($query)->read(); +print_r($response); + +// Best practice +$query = + (new Query('/system/script/add')) + ->equal('name', 'test_by_system3') + ->equal('source', 'monitoring') + ->equal('source', ':local monitor [/interface monitor-traffic ether2 as-value once] \r\n' + . ':local speedRX ($monitor->"rx-bits-per-second")\r\n' + . ':local speedTX ($monitor->"tx-bits-per-second")\r\n' + . '/tool fetch mode=http url=("http://192.168.254.72/micro-nms/storebw/1/$speedTX/$speedRX") keep-result=no'); + +$response = $client->query($query)->read(); +print_r($response); + +// Create scheduler for triggering created script +$query = + (new Query('/system/scheduler/add')) + ->equal('name', 'monitoring') + ->equal('on-event', 'monitoring') + ->equal('interval', '1s') + ->equal('start-time', 'startup'); + +$response = $client->query($query)->read(); +print_r($response); + +// Print created scripts +$query = new Query('/system/script/print'); + +$response = $client->query($query)->read(); +print_r($response);