Jump to content
  • 0

Mikrotik script get bytes


darkstarpz

Въпрос

Здравейте,

моля за съвет как трябва да е структуриран следния скрипт по отношение на 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

Благодаря!

 

Адрес на коментара
Сподели в други сайтове

3 отговори на този въпрос

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")

 

Редактирано от hgd
Адрес на коментара
Сподели в други сайтове

  • 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}

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

Редактирано от madmanz
Адрес на коментара
Сподели в други сайтове

  • 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, към който се подава инфото.

Адрес на коментара
Сподели в други сайтове

Създайте нов акаунт или се впишете, за да коментирате

За да коментирате, трябва да имате регистрация

Създайте акаунт

Присъединете се към нашата общност. Регистрацията става бързо!

Регистрация на нов акаунт

Вход

Имате акаунт? Впишете се оттук.

Вписване
  • Потребители разглеждащи страницата   0 потребители

    • No registered users viewing this page.
×
×
  • Създай нов...

Important Information

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