1 changed files with 77 additions and 0 deletions
@ -0,0 +1,77 @@ |
|||||
|
<?php |
||||
|
|
||||
|
/** |
||||
|
* This examples created by https://github.com/EvilFreelancer/routeros-api-php/issues/20 issue |
||||
|
*/ |
||||
|
|
||||
|
require_once __DIR__ . '/../vendor/autoload.php'; |
||||
|
|
||||
|
error_reporting(E_ALL); |
||||
|
|
||||
|
use RouterOS\Client; |
||||
|
use RouterOS\Query; |
||||
|
|
||||
|
$client = new Client([ |
||||
|
'timeout' => 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); |
||||
Write
Preview
Loading…
Cancel
Save
Reference in new issue