2016-04-15 7 views
0

Я хочу сравнить байты значение (tx-bytes, rx-bytes), загруженное пользователем с моим шаблоном например (100MiB, 50MiB) , но я не могу написать сценарий для решения этого вопроса, как Я могу это сделать ?Сравнительный скрипт для байтов значение mikrotik

место я хочу написать сценарий для этого есть:/интерфейс беспроводной регистрация стол> ОГО-гх байты значение (an image of this Place)

ответ

1

Как вы утверждаете, вы можете запросить таблицу регистрации с помощью /интерфейса беспроводной регистрации стола , Сведя на петле сценариев дает

:foreach wirelessClient in [/interface wireless registration-table find true] do={} 

то в этом Еогеасп цикле, получить статистические данные каждого клиента, используя идентификатор (пример здесь с «MAC-адрес» и «байт» поля)

:local macAddress [/interface wireless registration-table get [ find .id=$wirelessClient ] value-name=mac-address]; 
:local bytes [/interface wireless registration-table get [ find .id=$wirelessClient ] value-name=bytes]; 

Возвращенные данные «байтов» находятся в формате «RX, TX» (т.е. «545124,25422»). Поэтому вам нужно сделать небольшой трюк, чтобы извлечь строку RX: найдите символ «,» и извлеките строку перед этой запятой.

:local posComma [ :find $bytes "," -1] 
:local RXbytes [:pick $bytes 0 $posComma] 

Тогда легко проверить, что клиент скачал более 50M

:local status "Below 50M"; 
    :if ($RXbytes > 50000000) do={ 
    :set $status "Above 50M" 
    } 
    :put "Client: $macAddress $bytes $RXbytes -> $status"; 

Сложите все вместе в сценарии и выполнить его, вы получите что-то вроде

[[email protected]] > import test.rsc 
Client: D4:CA:6D:B2:AE:EF 202134,92985 202134 -> Below 50M 
Client: 48:9D:24:64:E6:08 8057465,2022134 8057465 -> Below 50M 
Client: 2C:56:DC:32:09:F0 3282973,888408 3282973 -> Below 50M 
Client: 48:59:29:F6:DF:5D 139664,248984 139664 -> Below 50M 
Client: A4:5E:60:EB:AE:33 159890028,12433385 159890028 -> Above 50M 

Для полного руководства по написанию скриптов Mikrotik отметьте http://wiki.mikrotik.com/wiki/Manual:Scripting

+0

благодарит за вашу помощь, вы меня спасли – neviseh70