2016-04-15 5 views
0

Ich möchte Vergleich Bytes Wert (tx-Bytes, rx-Bytes) vom Benutzer heruntergeladen mit meinem Muster zum Beispiel (100MiB, 50MiB) aber ich kann nicht schreiben Skript für das lösen, wie kann ich das machen ?Vergleichsskript für Bytes Wert mikrotik

der Ort i für das schreiben Skript wollen, ist:/Schnittstelle Drahtlos-Registrierungs-table> tx-rx Bytes Wert (an image of this Place)

Antwort

1

Wie Sie angeben, können Sie Registrierungstabelle abfragen mit /Schnittstelle drahtlosen Registrierungs-Tabelle . Setze diese auf einer Scripting-Schleife gibt

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

dann, in dieser foreach-Schleife, für jeden Kunden der Statistiken erhält die ID (Beispiel hier mit "mac-Adresse" und "Bytes" Felder)

: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]; 

mit Die zurückgegebenen "Bytes" Daten haben das Format "RX, TX" (zB "545124,25422"). Sie müssen also einen kleinen Trick ausführen, um die RX-Zeichenfolge zu extrahieren: Suchen Sie nach dem Zeichen "," und extrahieren Sie die Zeichenfolge vor diesem Komma.

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

Dann ist es einfach zu überprüfen, ob dieser Client mehr als 50M

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

alle zusammen in einem Skript und führen Sie es heruntergeladen hat, werden Sie so etwas wie

[[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 

erhalten Für das komplette Mikrotik Skript-Handbuch, überprüfen Sie http://wiki.mikrotik.com/wiki/Manual:Scripting

+0

danke für Ihre Hilfe, Sie haben mich gerettet – neviseh70