LINUX.ORG.RU

Тут надо прогу писать. Текущее значение можно считать так:
snmpget routerIP public interfaces.ifTable.ifEntry.ifInOctets
.IntefaceNUMBER
Но это число растет, причем счетчик может обнуляться.
Я написал скрипт на шелле, он складывает в текстовый файл(формат похож на формат RRDTool(потом можно еще и графически отобразить)) разницы значений, а потом дрыгой cgi-скрипт это все считает и рисует графики.
Вобшем не все так просто. Если надо считать траффик по локальным интерфейсам, то смотри файл /proc/net/dev его можно прогрепить, проAWKать и получить то, что надо, но опять же - счетчики обнуляются перодически, я пошел таким способом:
1.Смотрим, есть ли временный файл, если нету - создаем, пишем в него текущие значения (считанные с интерфейса) и выходим.
2.(это второй запуск или n-ый) Файл есть, значит считываем данные с интерфейса, сравниваем с теми, которые во временном файле, если считанные из интерфейса больше, чем предыдущие - вичитаем из считанных предыдущие, а результат пишем в файл данных(можно в базу втукать, в MySql например). Если считанные из интерфейса значения меньше (это значит, что счетчики обнулились)предыдущих, прото просто пишем их в файл(базу).
Потом с помощью AWK-а суммируем столбцы(там по условиям можно делать)
и есть у тебя траффик за определенный период
Вобщем могу замылить скрипт, дорабатывай как хошь, он не сложный.

kyd
()

Как считать трафик по сетевому интерфейсу через SNMP в Линуксе?

Какие функции, библиотеки в C или PERL работают с SNMP? Есть ли где либо доки об этом? Дайте направление для поиска!

anonymous
()

Мне кажется это слишком сложно, писать на сях.
Пару десятков строк на шелле, и рабочий скрипт.

kyd
()

кроме того, можно написать и на перле, но это будут те же овалы токо в профиль.

kyd
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.