0
我想比較字節值(tx-bytes,rx-bytes)用戶用我的模式下載例如(100MiB,50MiB) 但我不能寫腳本來解決這個問題,我可以那樣做嗎?比較腳本的字節值mikrotik
我想寫入該腳本的地方是:/接口無線登記表> TX-RX字節值 (an image of this Place)
我想比較字節值(tx-bytes,rx-bytes)用戶用我的模式下載例如(100MiB,50MiB) 但我不能寫腳本來解決這個問題,我可以那樣做嗎?比較腳本的字節值mikrotik
我想寫入該腳本的地方是:/接口無線登記表> TX-RX字節值 (an image of this Place)
作爲你的狀態,可以查詢使用/接口無線登記表登記表。在腳本循環把這個給
:foreach wirelessClient in [/interface wireless registration-table find true] do={}
那麼,在這個foreach循環,讓使用id(例如這裏的「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
感謝您的幫助,您救了我 – neviseh70