Подсчет трафика
-
- Сообщения: 14
- Зарегистрирован: 06 ноя 2013, 07:18
скрипт частично допилил, надо еще доделывать) еще раз спасибо) вот теперь вопрос встал, после ребута или аварийного отключения не сохраняет трафик, может есть какое нибудь решение что б сохранял? кинуть в свою память ее или еще какие костыли?
-
- Модератор
- Сообщения: 3600
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
так вы же в файл писать собираетесь, а там даже после полного сброса данные сохраняются
Есть интересная задача и бюджет? http://mikrotik.site
-
- Сообщения: 14
- Зарегистрирован: 06 ноя 2013, 07:18
ну это по своему как то не то. мне получается надо каждую минуту например писать в файл и скидывать, а потом считать(руками или же скриптом), просто думал может есть где то в недрах микроштыка галочка, или же команда, что б сохранял в свою "энергонезависимую" память 

-
- Модератор
- Сообщения: 3600
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
Чего считывать? Зачем считывать? Пожалуй только один раз когда счетчики обнулятся )))
Опять же это и есть энергонезависимая память ))
Опять же это и есть энергонезависимая память ))
Есть интересная задача и бюджет? http://mikrotik.site
- podarok66
- Модератор
- Сообщения: 4402
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
bersek писал(а):ну это по своему как то не то. мне получается надо каждую минуту например писать в файл и скидывать, а потом считать(руками или же скриптом), просто думал может есть где то в недрах микроштыка галочка, или же команда, что б сохранял в свою "энергонезависимую" память
Конечно, после перезагрузки счетчики скинутся. Но для того и пишем в текстовый файл, чтобы потом оттуда брать данные для отчета.
Запускать скрипт каждую минуту - это по меньшей мере странно. Достаточно запуска один раз в сутки, чтобы снималась статистика за эти самые сутки. Даже если произойдет сброс, потеряете Вы статистику лишь максимум за одни сутки. Не так страшно, как кажется.
Если же Вам критична такая дельта, то Вам прямая дорога к отдельно стоящему серверу, ведущему подсчет в реальном времени. Дорого и качественно

Я тоже делал наброски скрипта, хотел посмотреть алгоритм. В принципе, комментарии в первом приближении уже набросал. Теперь дело за обвязкой кодом. Если охота не пропадет (делаю всё из чистого любопытства), со временем возможно допишу...
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
- podarok66
- Модератор
- Сообщения: 4402
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Вот интересная фича выползает у меня при написании скрипта подсчета. Или баг, если угодно. Например, я хочу снять результаты с интерфейса ether2:
Никаких проблем не вижу, получаем какой-то там результат. Плюсуем его к нашему, это не проблема. Затем я хочу сбросить счетчики, это естественно, мне в следующее срабатывание нужно получить число байт за период времени между сработками скрипта.
Нет проблем, всё сбрасываю, в Winbox видно, что счетчик на интерфейсе ether2 обнулился.
Но если я возьму результаты интерфейса опять командой:
я получаю не сброшенный результат, счетчик продолжает считать с момента перезагрузки роутера.

ЧЯДНТ?
Прямо заинтересовала меня этот косячок
Код: Выделить всё
:put [/interface get [find name=ether2] rx-byte ]
5715823
Никаких проблем не вижу, получаем какой-то там результат. Плюсуем его к нашему, это не проблема. Затем я хочу сбросить счетчики, это естественно, мне в следующее срабатывание нужно получить число байт за период времени между сработками скрипта.
Код: Выделить всё
interface ethernet reset-counters [find name=ether2
Нет проблем, всё сбрасываю, в Winbox видно, что счетчик на интерфейсе ether2 обнулился.
Но если я возьму результаты интерфейса опять командой:
Код: Выделить всё
:put [/interface get [find name=ether2] rx-byte ]
5982564
я получаю не сброшенный результат, счетчик продолжает считать с момента перезагрузки роутера.

ЧЯДНТ?
Прямо заинтересовала меня этот косячок

Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
-
- Модератор
- Сообщения: 3600
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
- podarok66
- Модератор
- Сообщения: 4402
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Ну а как? Смотри код:
Алгоритм такой, через заданный период времени снимаю показания со счетчика, суммирую их с теми, что у меня записаны, переписываю их в файле и сбрасываю счетчик. Мне же надо прибавить только трафик между измерениями, а не всё, что прошло через интерфейс с момента перезагрузки роутера.
Код: Выделить всё
:if ([/file get [/file find name=rx.txt] content]!="nil") do={/file set [/file find name=rx.txt] content=([/interface get [find name=ether2] rx-byte ] + [/file get [find name=rx.txt] content]);
:delay 2;
/interface ethernet reset-counters [find name=ether2];} else={/file print file=rx.txt;
:delay 5;
/file set [/file find name=rx.txt] content=[/interface get [find name=ether2] rx-byte ];
:delay 2;
/interface ethernet reset-counters [find name=ether2];}
# То же tx
:if ([/file get [/file find name=tx.txt] content]!="nil") do={/file set [/file find name=tx.txt] content=([/interface get [find name=ether2] tx-byte ] + [/file get [find name=tx.txt] content]):
:delay 2;
/interface ethernet reset-counters [find name=ether2];} else={/file print file=tx.txt;
:delay 5;
/file set [/file find name=tx.txt] content=[/interface get [find name=ether2] tx-byte ];
:delay 2;
/interface ethernet reset-counters [find name=ether2];}
Алгоритм такой, через заданный период времени снимаю показания со счетчика, суммирую их с теми, что у меня записаны, переписываю их в файле и сбрасываю счетчик. Мне же надо прибавить только трафик между измерениями, а не всё, что прошло через интерфейс с момента перезагрузки роутера.
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...
-
- Модератор
- Сообщения: 3600
- Зарегистрирован: 26 сен 2013, 14:20
- Откуда: НСК
- Контактная информация:
Ну а кто мешает вычислять разницу между текущими показаниями и предыдущими и разницу прибавлять к значению в файле?
Есть интересная задача и бюджет? http://mikrotik.site
- podarok66
- Модератор
- Сообщения: 4402
- Зарегистрирован: 11 фев 2012, 18:49
- Откуда: МО
Мешает гипотетическая ситуация, когда роутер будет перезагружен. Тогда разница между предыдущими показаниями 45464654445 и получившимися после перезагрузки 87561 не будет отражать реальную картину...
Мануалы изучил и нигде не ошибся? Фаервол отключил? Очереди погасил? Витая пара проверена? ... Тогда Netinstal'ом железку прошей и настрой ее заново. Что, все равно не фурычит? Тогда к нам. Если не подскажем, хоть посочувствуем...