использовал этот скрипт он мне выдал ошибку...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
Код: Выделить всё
# Сохраняем статистику по текущему интерфейсу
/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
Или может я чего-то не того делаю ?