Jump to content
  • 0

Mikrotik script get bytes


darkstarpz

Question

Здравейте,

моля за съвет как трябва да е структуриран следния скрипт по отношение на bytes:

:local txbytes [/ip firewall mangle get [/ip firewall mangle find where chain=prerounting] bytes] ; :put $txbytes

Към момента не работи като output а е:

no such item

Това, което искам е да се присвои на променливата стойността на bytes от вградения dummy passthrough рул в mangle

Благодаря!

 

Link to comment
Share on other sites

3 answers to this question

Recommended Posts

  • 0

Тук има един трафик колектор за Микротик - дали не търсиш реално подобно нещо?

https://github.com/muhannad0/mikrotik-traffic-counter

В техния примерен скрипт има подобна логика:

:local wantxcomment "local-wan-tx"
:local wanrxcomment "local-wan-rx"
:local sysnumber [/system routerboard get value-name=serial-number]
:local txbytes [/ip firewall mangle get [/ip firewall mangle find comment="$wantxcomment"] bytes]
:local rxbytes [/ip firewall mangle get [/ip firewall mangle find comment="$wanrxcomment"] bytes]
/tool fetch url=("http://<server ip/url>/collector.php\?sn=$sysnumber&tx=$txbytes&rx=$rxbytes") mode=http keep-result=no
/ip firewall mangle reset-counters [/ip firewall mangle find comment="$wantxcomment"]
/ip firewall mangle reset-counters [/ip firewall mangle find comment="$wanrxcomment"]
:log info ("cleared counters for all mangle rules")

 

Edited by hgd
Link to comment
Share on other sites

  • 0

Изглежда, ще се наложи да използваш цикъл. Мисля, че 

[/ip firewall mangle find where chain=prerounting]

ще ти върне масив с индексите на всички правила в prerouting веригата и в цикъл ще трябва да ги обходиш и да сумиращ или изпринтиш резултатите. Може би ще изглежда по този начин

:global index;
:foreach $index in [/ip firewall mangle find where chain=prerouting] do={:put /ip firewall mangle get $index bytes}

Ако дадеш малко повече информация какво се опитваш да постигнеш ще е още по-добре.

Edited by madmanz
Link to comment
Share on other sites

  • 0

Здравейте,

ползвам трафик колектора, но го измених доста - направих си статистика за трафик по дни и по месеци. Дефакто този скрипт подава инфо към уеб сървъра и посредство PHP пише резултатите в Sqlite база. От там ги чета, сумирам го по дни и месеци с се получи добре. Идеята ми беше да знам колко ми е трафика общо - ъплоад+даунлоад.

Скрипта, който ползвам е:

:local sysnumber [/system routerboard get value-name=serial-number]
:local txbytes [/ip firewall mangle { get [find chain="prerouting"] bytes }]
:local rxbytes [/ip firewall mangle { get [find chain="postrouting"] bytes }]
/tool fetch url=("http://192.168.88.105/traffic/collector.php\?sn=$sysnumber&tx=$txbytes&rx=$rxbytes") mode=http keep-result=no
/ip firewall mangle reset-counters [/ip firewall mangle find chain="prerouting"]
/ip firewall mangle reset-counters [/ip firewall mangle find chain="postrouting"]
:log info ("cleared counters for all mangle rules")

и се различава от така представения в Github и затова отворих тази тема. 192.168.88.105 е web server, към който се подава инфото.

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
  • Recently Browsing   0 members

    • No registered users viewing this page.
×
×
  • Create New...

Important Information

By using this site, you agree to our Terms of Use.