|
|
ru.unix.bsd- RU.UNIX.BSD ------------------------------------------------------------------ From : Alexander Pechenin 2:5020/400 13 Feb 2006 10:43:07 To : Andrey Ostanovsky Subject : Re: 2 Andrey Ostanovsky - Примеры взаимодействия Net-snmp + MRTG -------------------------------------------------------------------------------- "Andrey Ostanovsky" <Andrey.Ostanovsky@p10.f1957.n5030.z2.fidonet.org> wrote in message news:1139781747@p10.f1957.n5030.z2.ftn... > Hello Alexander. > > Hиже кусочек рабочего скрипта. Дело в том, что и в приведенном выше примере, и > в приведенном ниже - имеем конструкцию awk '{...} END {...}'. > > Если бы ты почитал что-нибудь про создание скриптов на awk, то знал бы, что то, > что в фигурных скобках до END делается на каждую строчку ввода (или совпадение > с условием до скобок), а то, что после END, ну, ты наверное уже понял - по > окончании обработки входного потока. Поэтому мы сначала все собираем, а по > окончании ввода - печатаем уже только то, что нам нужно. > > netstat -f inet -nbI ${IFACE}|\ > awk -v regexp=${IFACE} '$1 ~ regexp \ > {ibytes=(ibytes+$7); obytes=(obytes+$10); addr=addr $4","; iface=$1} \ > END \ > { print int(ibytes) "\n" int(obytes) "\n" addr "\n" iface }' > Принцип я понял, сначала суммируем значения в получаемых посредством выполнения "netstat -f inet -nbI ${IFACE}" столбцах $7 и $10 и после выводим данные в необходимых нам четырех строках. Может я чего-то недопонял или где-то есть ошибка в скрипте, но на выходе я получаю данные почему-то в таком виде: 672 3.29809e+09 192.168.2.1,192.168.4.1,192.168.5.1,192.168.7.1, rl2 Как видно выше, неправильно складывается значения в (obytes+$10), в чем тут дело? > > В принципе, если убрать у netstat параметр "-f inet", тогда появится строчка > Link, и считать можно только ее. > Может быть действительно это будет более правильный вариант получения данных? netstat -nbI ${IFACE} | grep Link | \ awk -v regexp=${IFACE} '$1 ~ regexp { print $7"\n"$10"\n"$4"\n"$1 }' Поскольку, как видно ниже из вывода "netstat -nbI rl2", значения Ibytes у всех подсетей без наличия строки Link практически нулевые, что в свою очередь повлияет на правильность построения графиков MRTG, разве нет? # netstat -nbI rl2 Name Mtu Network Address Ipkts Ierrs Ibytes Opkts Oerrs Obytes Coll rl2 1500 <Link#3> 00:80:48:34:ff:ad 2608402 0 448825194 3190363 0 3351819220 503236 rl2 1500 192.168.2 192.168.2.1 0 - 0 7843 - 358780840 - rl2 1500 fe80:3::280 fe80:3::280:48ff: 0 - 0 2 - 144 - rl2 1500 192.168.4 192.168.4.1 0 - 0 5671 - 881477907 - rl2 1500 192.168.5 192.168.5.1 4 - 336 7137 - 1848033887 - rl2 1500 192.168.7 192.168.7.1 4 - 336 7331 - 218298203 - Кстати, а имеет значение, в какой последовательности выводить значения Ibytes и Obytes, что из них должно быть первым? -- Отправлено через сервер Форумы@mail.ru - http://talk.mail.ru --- ifmail v.2.15dev5.3 * Origin: Talk.Mail.Ru (2:5020/400) Вернуться к списку тем, сортированных по: возрастание даты уменьшение даты тема автор Архивное /ru.unix.bsd/64883bc4e70b.html, оценка из 5, голосов 10
|