воскресенье, 30 января 2011 г.

Скрипты снятия статистики с сетевых интерфейсов

Скрипты для снятия информации с сетевых интерфейсов. Несколько штук. От относительно простых, до очень даже непростых.

Самый простой вариант скрипта. Снимает статистику только с вписанного в скрипт интерфейса (в данном примере eth0). Для мониторинга другого интерфейса необходимо раскопировать скрипт и поменять вписанное имя интерфейса. Не очень удобен в работе, зато удобен в отладке. Рекомендуется начинающим.
#nano -w /etc/mrtg/mrtgstat.eth0
#!/bin/bash
INPUT=`ifconfig eth0| grep bytes | awk {'print $2'}| sed "s/bytes://"`
OUTPUT=`ifconfig eth0| grep bytes | awk {'print $6'}| sed "s/bytes://"`
echo $INPUT
echo $OUTPUT
echo `date +%s`
echo "eth0"
#chmod a+x /etc/mrtg/mrtgstat.eth0

Иная вариация скрипта.
Эта версия, кроме того что расчитана на исполнение с любым интерфейсом, предусматривает возможность отсутствия указанного интерфейса в системе.
#nano -w /etc/mrtg/traffic.sh
#!/bin/bash
if [ -z "$(ifconfig | grep -i $1)" ]; then
# "Interface $1 seems to be down"
INPUT="0"
OUTPUT="0"
else
# "Interface $1 seems to be up"
INPUT=`ifconfig $1| grep bytes | awk {'print $2'}| sed "s/bytes://"`
OUTPUT=`ifconfig $1| grep bytes | awk {'print $6'}| sed "s/bytes://"`
fi
echo $INPUT
echo $OUTPUT
echo `date +%s`
echo $1
Как видно из кода, в случае, когда интерфейс отсутствует, значения пременных обнуляються.
#chmod a+x /etc/mrtg/traffic.sh
Для запуска скрипта достаточно выполнить #/etc/mrtg/traffic.sh iface

Комментариев нет:

Отправить комментарий