darkstarpz Публикувано 15 Юни, 2020 Доклад Публикувано 15 Юни, 2020 Здравейте, моля за съвет как трябва да е структуриран следния скрипт по отношение на 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 Благодаря!
0 hgd Отговорено 17 Юни, 2020 Доклад Отговорено 17 Юни, 2020 (Редактирано) Тук има един трафик колектор за Микротик - дали не търсиш реално подобно нещо? 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") Редактирано 17 Юни, 2020 от hgd
0 madmanz Отговорено 17 Юни, 2020 Доклад Отговорено 17 Юни, 2020 (Редактирано) Изглежда, ще се наложи да използваш цикъл. Мисля, че [/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} Ако дадеш малко повече информация какво се опитваш да постигнеш ще е още по-добре. Редактирано 17 Юни, 2020 от madmanz
0 darkstarpz Отговорено 25 Юни, 2020 Автор Доклад Отговорено 25 Юни, 2020 Здравейте, ползвам трафик колектора, но го измених доста - направих си статистика за трафик по дни и по месеци. Дефакто този скрипт подава инфо към уеб сървъра и посредство 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, към който се подава инфото.
Въпрос
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
Създайте нов акаунт или се впишете, за да коментирате
За да коментирате, трябва да имате регистрация
Създайте акаунт
Присъединете се към нашата общност. Регистрацията става бързо!
Регистрация на нов акаунтВход
Имате акаунт? Впишете се оттук.
Вписване