Created
October 20, 2012 09:59
-
-
Save TheSkorm/3922835 to your computer and use it in GitHub Desktop.
Bandwidth quota for mikrotik with a freezone
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| /queue tree get number=queue1 value-name=bytes | |
| print out the number of bytes | |
| :put [/queue tree get number=queue1 value-name=bytes ] | |
| :if ($bytesIn > 53687091200) do={ | |
| :global bytesIn; | |
| :set bytesIn [/queue tree get number=queue1 value-name=bytes ]; | |
| :global date; | |
| :set date [/system clock get value-name=date] ; | |
| :global day; | |
| :set day ""; | |
| :for i from=( [:len $date] - 1) to=4 do={ | |
| :if ( [:pick $date $i] = "/") do={ | |
| :set day ($day . [:pick $date 4 $i]); | |
| } | |
| } | |
| :if ($day = "01") do={ | |
| :if ([:pick [/system clock get time] 0 5] = "00:00") do={ | |
| /queue tree disable queue2; | |
| /queue tree reset-counters queue1,queue2; | |
| } | |
| } | |
| :if ($bytesIn > 5365) do={ | |
| /queue tree enable queue2; | |
| } | |
| /system script | |
| add name=bandwidth policy=read,write,policy,test,sniff source=":global bytesIn;\ | |
| \n:set bytesIn [/queue tree get number=queue1 value-name=bytes ];\ | |
| \n\ | |
| \n:global date;\ | |
| \n:set date [/system clock get value-name=date] ;\ | |
| \n:global day;\ | |
| \n\ | |
| \n:set day \"\";\ | |
| \n\ | |
| \n:for i from=( [:len \$date] - 1) to=4 do={ \ | |
| \n\t:if ( [:pick \$date \$i] = \"/\") do={ \ | |
| \n\t\t:set day (\$day . [:pick \$date 4 \$i]);\ | |
| \n\t} \ | |
| \n}\ | |
| \n\ | |
| \n:if (\$day = \"01\") do={\ | |
| \n:if ([:pick [/system clock get time] 0 5] = \"00:00\") do={\ | |
| \n/queue tree disable queue2;\ | |
| \n/queue tree reset-counters queue1,queue2;\ | |
| \n}\ | |
| \n}\ | |
| \n\ | |
| \n\ | |
| \n\ | |
| \n\ | |
| \n:if (\$bytesIn > 53687091200) do={\ | |
| \n/queue tree enable queue2;\ | |
| \n}" | |
| /system scheduler | |
| add disabled=no interval=15s name=bandwidth on-event="/system script run bandwidth" policy=\ | |
| read,write,policy,test start-time=startup | |
| /interface bridge filter | |
| add action=mark-packet chain=forward disabled=no dst-address=59.167.158.64/26 mac-protocol=ip \ | |
| new-packet-mark=internal src-address=59.167.158.64/26 | |
| /queue tree | |
| add burst-limit=0 burst-threshold=0 burst-time=0s disabled=no limit-at=0 max-limit=0 name=queue1 \ | |
| packet-mark=no-mark parent=Erin priority=8 | |
| /queue simple | |
| add burst-limit=0/0 burst-threshold=0/0 burst-time=0s/0s direction=both disabled=no interface=Erin \ | |
| limit-at=0/0 max-limit=0/0 name=queue1 packet-marks="" parent=none priority=8 queue=\ | |
| default-small/default-small target-addresses="" total-queue=default-small | |
| /queue tree | |
| add burst-limit=0 burst-threshold=0 burst-time=0s disabled=yes limit-at=128k max-limit=128k name=\ | |
| queue2 packet-mark=no-mark parent=queue1 priority=8 queue=default | |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment