Короче, мне нужно мониторить текущую скорость инета, для одного самопального девайса. Инет у меня раздаёт старенький роутер WL-500W, прошивка Олегова. В прошивке уже есть скриптики для базового мониторинга интерфейсов и проца.
Скрипты:
http://<логин_админки>:<пароль_админки>@<ip_роутера>/fetchif.cgi?<имя_интерфейса>
Т.е., к примеру, для опроса состояния интерфейса WAN будет такая строчка запроса
http://admin:password@192.168.1.1/fetchif.cgi?ppp0
Сам скрипт fetchif.cgi
[code]#!/bin/sh
/bin/echo -e "Content-type: text/html";
/bin/date
/bin/grep "${ QUERY_STRING }" /proc/net/dev[/code]
Выдаёт строку вида
Sun Dec 4 08:14:47 UCT 2011 ppp0:471161030 4742393 0 0 0 0 0 0 1181941032 3556024 0 0 0 0 0 0
Продолжение...
Формат обычный для файла /proc/net/dev, только сначала ещё и полная дата вставляется. Дальше идут поля по-порядку
Receive (т.е. принятые)
bytes packets errs drop fifo frame compressed multicast
Transmit (отправленные)
bytes packets errs drop fifo colls carrier compressed
Итого, чтоб узнать скорость, нуна периодически опрашивать скрипт, получать кол-во принятых (или переданных) байтиков, минусовать прошлое значение, делить на разницу времени.
Кстати, ещё в корне есть скриптик cpu.cgi
[code]#!/bin/sh
/bin/echo -e "Content-type: text/html";
/usr/bin/head -n 1 /proc/stat[/code]
Запрос http://admin:password@192.168.1.1/cpu.cgi выдаёт что-то типа
2480 812401 23867096
(user nice system)
user - кол-во процессорного времени, затраченного на выполнение обычных процессов в юзермоде,
nice - приоритетных процессов в юзермоде
system - процессов ядра
Маман Воскресенье, 4 Декабря, 2011 17:42 цитировать ссылка на коммент