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', ':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', ':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', ':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);