Страница 1 из 1

Подсчёт трафика по Лиссяриному

Добавлено: 2007-04-16 20:59:02
lev
#!/bin/sh

# Временный файл
tmp_file="/tmp/trafd.traffic.$$.tmp"

# внешний ip машины
external_IP="`/sbin/ifconfig ed0 | 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})
# выполняем один и тот же набор действий по разбору логов и запихиванию
# их в базу данных
for iface in ${trafd_ifaces}
do
# Сохраняем статистику по текущему интерфейсу
/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}

# проверяем интерфейс. Нам интересен лишь ed0
if [ ${iface} = 'ed0' ]
then
# Считаем траффик от нас. Считаем за весь месяц, кладём во временный
# файл - из него будет выводиться при логине - когда su делаешь
cat ${NewDir}/summary.${iface} | grep "^[0-9]" | grep "^${external_IP}"| awk '
BEGIN { d=0 }
{
# Суммируем 6-й столбец на вводе - траффик
d=$6+d
}
END {
printf " %s \n",d
} ' > ${tmp_file}
read bytes_out < ${tmp_file}

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

# заносим траффик во временный файл - будет выводиться на экран при логоне
# но вначале пересчитываем из байт в мегабаты.

echo " Траффик за этот месяц (пересчитывается каждые 10 минут):
Входящий: `expr ${bytes_in} / 1048576` Mb
Исходящий: `expr ${bytes_out} / 1048576` Mb" > /usr/local/var/trafd/tmp_data.txt

#echo ${bytes_in} ${bytes_out}
fi

done

# удаляем временный файл
rm ${tmp_file}

скрипт подсчёт траффика - используется на test.lissyara.su. Кроном - раз в 10 минут...






Лис а скажи могу я пристроить твой скрипт к своей фре?
У меня две сетевухи.
Одна в инет другая в лан.
И тогда не надо САРГа.
А скажи чё еще надо? и где я буду видеть этот отчёт.

И мне показалось что в твоём скрипте повторяется дважды одно и тоже/ Confused

Добавлено: 2007-04-16 21:01:06
Alex Keda
пристроить можно что угодно и куда угодно :)
отчёт сохраняется в этом файле
/usr/local/var/trafd/tmp_data.txt
для работы нужен nhfal и не будешь видеть статистики по юзерам - это очень узкоспециализированный скрипт....

Добавлено: 2007-04-16 21:11:08
lev
По юзерам у меня сарг работает/
А увидеть весь входящий за каждый месяц трафик-это моя задача номер один
nhfal-это кто такой и где его и как его :twisted: :twisted:
Лис научи :roll:

Добавлено: 2007-04-16 21:40:29
Alex Keda
ну так прикручивай...

Добавлено: 2007-04-16 21:41:11
Alex Keda
trafd :)

Добавлено: 2007-04-16 21:43:45
lev
Лис ты не ответил насчет того что там в скрипте два раза одно и тоже :?

Добавлено: 2007-04-16 21:46:27
lev
И ещё не сказал что это "nhfal"/
В системе такого не нащёл/

Добавлено: 2007-04-16 22:15:11
serge
:D
Посмотри на клавиатуре какие русские буквы рядом с этими и поймешь :lol:

Добавлено: 2007-04-16 22:22:44
lev
Kbc ibahetcz :cry:

Добавлено: 2007-04-16 22:32:14
Alex Keda
а подумать?

Добавлено: 2007-04-16 23:03:11
lev
Упарился маленько однако :twisted:
Трафд поставил/ но дальше чё ????? пойду посплю /может завтра буду свежее
Спасибо за помощь :P