trafd - разбор полетов

Проблемы с установкой, настройкой и работой системных и сетевых программ.

Модераторы: GRooVE, alexco

Правила форума
Убедительная просьба юзать теги [code] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
Аватара пользователя
V1talya
мл. сержант
Сообщения: 122
Зарегистрирован: 2007-07-23 9:36:52
Откуда: г. Нерюнгри
Контактная информация:

trafd - разбор полетов

Непрочитанное сообщение V1talya » 2007-08-14 3:58:03

lissyara писал(а):Продолжаю баловаться траффиками - для домаашнего сервачка сделал.

Код: Выделить всё

#!/bin/sh

# Временный файл
tmp_file="/tmp/trafd.traffic.$$.tmp"
out_file="/usr/local/var/trafd/tmp_data.txt"
# внешний ip машины
#external_IP="`/sbin/ifconfig xl0 | grep inet | awk '{print $2}'`"
#internal_IP="`/sbin/ifconfig ep0 | grep inet | awk '{print $2}'`"
#wifi_IP="`/sbin/ifconfig ath0 | grep inet | awk '{print $2}'`"


# Сегодяшний день
day="`date +%Y-%m-%d`"
# Текущий год
year="`date +%Y`"
# Текущий месяц
month="`date +%m`"
# Текущее время (секунды специально сделаны 00 - иногда cron запускает скрипт не
# в 00 секунд а позже (максимум что я видел - в 13), если машина очень загружена -
# как итог в логах начинает фигурировать разное число секунд.
# Мне это непонравилось :)
curr_time="`date +%H:%M:00`"
# Директория в которой будут храниться текстовые файлы с логами trafd
NewDir="/var/traffic/${year}/${month}"
# Пытаемся создать эту самую директорию на случай если это первый запуск
# или произошла смена месяца (года)
mkdir -p ${NewDir}
# Ну и топаем туда
cd ${NewDir}

# Считываем все переменные из файла /etc/rc.conf с целью извлечь оттуда
# строчку с названиями интерфейсов по которым работает trafd
# (У меня три сетевых платы и lo0 - просто интереса ради)
. /etc/rc.conf

# Для всех интерфейсов выковырнутых из rc.conf (висят в ${trafd_ifaces})
# выполняем один и тот же набор действий по разбору логов и запихиванию
# их в базу данных
echo " Траффик за этот месяц:" > ${out_file}
echo " Интерфейс        Входящий        Исходящий" >> ${out_file}
for iface in ${trafd_ifaces}
do
        IP="`/sbin/ifconfig ${iface} | grep inet | awk '{print $2}' | head -1`"
        # Считаем траффик от нас. Считаем за весь месяц, кладём во временный
        # файл - из него будет выводиться при логине - когда su делаешь
        cat ${NewDir}/summary.${iface} | grep "^[0-9]" | grep "^${IP}"| awk '
                BEGIN { d=0 }
                        {
                                # Суммируем 6-й столбец на вводе - траффик
                                d=$6+d
                        }
                END {
                                print d/1048576
                } ' > ${tmp_file}
        read bytes_out < ${tmp_file}

        # Считаем траффик от нас. Считаем за весь месяц, кладём во временный
        # файл - из него будет выводиться при логине - когда su делаешь
        cat ${NewDir}/summary.${iface} | grep "^[0-9]" | grep -v "^${IP}"| awk '
                BEGIN { d=0 }
                        {
                                # Суммируем 6-й столбец на вводе - траффик
                                d=$6+d
                        }
                END     {
                                print d/1048576
                        } ' > ${tmp_file}
        read bytes_in < ${tmp_file}

        # заносим траффик во временный файл - будет выводиться на экран при логоне
        if [ "${bytes_in}" = "0" ]
        then
                # нету траффега
        else
                echo " ${iface}         ${bytes_in} Mb  ${bytes_out} Mb" >> ${out_file}
        fi
        # удаляем временный файл
        rm ${tmp_file}
done

echo " Подсчитан `date 
+%Y-%m-%d` в `date +%H:%M:%S` MSK" >> ${out_file}
удивили цифры:

Код: Выделить всё

more /usr/local/var/trafd/tmp_data.txt
 Траффик за этот месяц:
 Интерфейс      Входящий        Исходящий
 xl0            706,019 Mb      367348 Mb
 ep0            1358,88 Mb      2259,12 Mb
 ath0           36,7791 Mb      0,10037 Mb
 Подсчитан 2007-07-06 в 23:19:19 MSK
и это с начала месяца... бедный старенький пенёк :)
использовал этот скрипт он мне выдал ошибку...

Код: Выделить всё

cat: /var/traffic/2007/08/summary.em0: No such file or directory
cat: /var/traffic/2007/08/summary.em0: No such file or directory
cat: /var/traffic/2007/08/summary.re0: No such file or directory
cat: /var/traffic/2007/08/summary.re0: No such file or directory
cat: /var/traffic/2007/08/summary.re1: No such file or directory
cat: /var/traffic/2007/08/summary.re1: No such file or directory
cat: /var/traffic/2007/08/summary.gif0: No such file or directory
cat: /var/traffic/2007/08/summary.gif0: No such file or directory
Пришлось выдернуть из старога скрипта lissyara строки

Код: Выделить всё

 # Сохраняем статистику по текущему интерфейсу
        /usr/local/bin/trafsave ${iface}
        # Преобразуем логи из двоичного в текстовый формат. Сохраняются они в
        # папке /tmp в виде файлов summary.* c расширением по имени интерфейса
        /usr/local/bin/traflog -i ${iface} -a -n -s > /tmp/summary.${iface} 2>/dev/null
        # Очищаем файл с логами в двоичном формате
        cat /dev/null > /usr/local/var/trafd/trafd.${iface}
        # Дозаписываем логи в текстовый файл (пусть лежат на всякий случай...)
        cat /tmp/summary.${iface} >> ${NewDir}/summary.${iface}
Все вроде как работает:

Код: Выделить всё

cat /usr/local/var/trafd/tmp_data.txt
 Траффик за этот месяц:
 Интерфейс        Входящий        Исходящий
 em0         0.132368 Mb  0.690946 Mb
 re0         6.08339 Mb  1.83887 Mb
 re1         9.37525 Mb  0 Mb
 gif0         9.32568 Mb  0 Mb
 Подсчитан 2007-08-14 в 10:46:37
Только вот почему так странно считается трафик ? на gif0, re1 нету исходящего...?
Или может я чего-то не того делаю ?
Последний раз редактировалось V1talya 2007-08-14 8:41:22, всего редактировалось 1 раз.
Debian GNU/Linux 4.0
FreeBSD 6.2

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

Аватара пользователя
Alex Keda
стреляли...
Сообщения: 35426
Зарегистрирован: 2004-10-18 14:25:19
Откуда: Made in USSR
Контактная информация:

Re: trafd - разбор полетов

Непрочитанное сообщение Alex Keda » 2007-08-14 8:16:00

строки ты зря выдернул...
он тока при первом запуске ругается.
=========
вот поэтому не очень люблю самописные скрипты выкладывать - запускают неглядя и непонимая как работает...
Убей их всех! Бог потом рассортирует...

Аватара пользователя
V1talya
мл. сержант
Сообщения: 122
Зарегистрирован: 2007-07-23 9:36:52
Откуда: г. Нерюнгри
Контактная информация:

Re: trafd - разбор полетов

Непрочитанное сообщение V1talya » 2007-08-14 8:35:26

строки ты зря выдернул...
он тока при первом запуске ругается.
Я раз 10 тыкал... он все время так ругается ...

А как откуда он без тех строк будет брать данные ?

Рассказывай :) будем учиться

а почему на gif0, re1 нету исходящего...? - ??????
вот поэтому не очень люблю самописные скрипты выкладывать - запускают неглядя и непонимая как работает...
Ну а что делать ? не у всех еще такой багаж знаний как у некоторых,
поэтому я все что не знаю, познаю методом тыка и если что-то не получается сразу же встает вопрос а почему ?
Debian GNU/Linux 4.0
FreeBSD 6.2