Пожалуйста отключите Adblock или другой блокировщик рекламы на нашем сайте.
На нашем сайте нет вредоносной или тяжелой рекламы. Реклама на сайте идет на его поддержку и развитие.

Реклама спонсоров

Пока нету(не люблю рекламу), только ваша поддержка!

Простой учет трафика (статистика трафика) силами Микротика

Иногда возникает неохобходимость вести учет трафика по дням с сохранением.

Я написал простой скрипт для сохранения текущего значения Tx/Rx Rate с переводом в Гб у указанного интефейса у меня это ether1. Также записивается дата и время.

Перед использованием нужно содать файл traffic.txt в дериктории flash

Например из терминала так:

/file print file="/flash/traffic.txt";
/file set flash/traffic.txt contents="Traffic";

Скрипт:

:local dateq [/sys clock get date]; :put $dateq;
:local timeq [/sys clock get time]; :put $timeq;
:local rxq (([/interface get [find name=ether1] rx-byte])/1073741824); :put $rxq;
:local txq (([/interface get [find name=ether1] tx-byte])/1073741824); :put $tx;
:local ContentsFile1 [/file get flash/traffic.txt contents]; :put $ContentsFile1;
/file set flash/traffic.txt contents="$ContentsFile1\n$dateq $timeq\n$rxq $txq Gb";

Идет в System > Script

Создаем скрипт traffic, как на картинке

Затем идем System > Schedule

Создаем задачу с содержимым:

/system script run traffic

Как на картинке:

Результат выполнения вылядит так:

feb/16/2021 00:10:01 (дата время)
54 6 Gb (скачано отдано в Гб)

Подробнее о скрипте. У некоторых строк есть :put для вывода содержимого переменной для откладки.

В этой строке переменная dataq получает текущую дату, затем :put $dateq; может вывести переменную если выполнить в терминале.

:local dateq [/sys clock get date]; :put $dateq;

В этой строке переменная timeq получает время.

:local timeq [/sys clock get time]; :put $timeq;

В этой строке переменная rxq получает Rx Rate (данные скачанные из интернета) и делит их для перевода в Гб, можно в Мб для этого нужно заменить число 1073741824 на 1048576.

:local rxq (([/interface get [find name=ether1] rx-byte])/1073741824); :put $rxq;

Тоже самое но Tx Rate

:local txq (([/interface get [find name=ether1] tx-byte])/1073741824); :put $tx;

В этой строке мы получает содержимое файла traffic.txt из папки flash в переменную ContentsFile1 для сохранения истории

:local ContentsFile1 [/file get flash/traffic.txt contents]; :put $ContentsFile1;

Записываем переменные ContentsFile1 dateq timeq rxq и txq в файл, получим что такое feb/16/2021 00:10:01 54 6 Gb

/file set flash/traffic.txt contents=»$ContentsFile1\n$dateq $timeq\n$rxq $txq Gb»;

Конец, кто дочитал тот молодец.

 

Добавить комментарий