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

I need help

Добавлено: 2006-08-22 19:05:38
temil
Hi, All. Господа поставил скрипт на один интерфейс, по крону он запускаться не хочет, все запускается из под рута, права вроде все выставленны, теперь самое интересное данные после выполнения запроса итоги расходятся достаточно прилично, у права 150 метров у меня 500 и более, хотя сортировка выполнена с учетом протокола и порта, в чем может быть трабол

Добавлено: 2006-08-22 19:46:52
Alex Keda
ну а привести то, что повесил, слабо?
ночью, файлик скачать известного размера и глянуть итоги?

Добавлено: 2006-08-23 5:57:15
temik
Да делал и так, берем за основу 1-н день шаг 9 минут,
select SUM(bytes) from xl0_2006 where date='2006-08-23' and from_IP NOT LIKE '192.168.%' prot_from_IP='80' and protocol='tcp';

получается 15 Гб а по статистики права 34 Мb как так не понятно

Добавлено: 2006-08-23 7:21:03
temik

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

#!/bin/sh

IP_MySQL_servera="localhost"
username="trafd"
user_passw="trafd"
db_name="trafds2"

day="`date +%Y-%m-%d`"
year="`date +%Y`"
month="`date +%m`"
curr_time="`date +%H:%M:00`"
NewDir="/usr/var/traffic/${year}/${month}"

mkdir -p ${NewDir}
cd ${NewDir}

mysql="/usr/local/bin/mysql"

sql_preffix="${mysql} --host=${IP_MySQL_servera} \
--user=${username} --password=${user_passw} --database=${db_name}"

. /etc/rc.conf

for iface in ${trafd_ifaces}
do

/usr/local/bin/trafsave ${iface}
/usr/local/bin/traflog -i ${iface} -a -n -s > /usr/var/tmp/summary.${iface} 2>/dev/null
cat /dev/null > /usr/var/trafd/trafd.${iface}
cat /usr/var/tmp/summary.${iface} >> ${NewDir}/summary.${iface}

${sql_preffix} --execute="CREATE TABLE \`traffic_tmp\` \
(\`date\` DATE NOT NULL, \`time\` TIME NOT NULL, \
\`from_IP\` CHAR(16) NOT NULL, \`port_from_IP\` CHAR(8) NOT NULL, \
\`to_IP\` CHAR(16) NOT NULL, \`port_to_IP\` CHAR(8) NOT NULL, \
\`protocol\` ENUM('icmp','tcp','udp') NOT NULL, \`bytes\` int(16) NOT NULL, \
\`all_bytes\` int(16) NOT NULL) TYPE=MyISAM COMMENT='tmp_table'" 2>/dev/null

${sql_preffix} --execute="DELETE FROM \`traffic_tmp\`"

grep -v "^ " /usr/var/tmp/summary.${iface} |
{
while read stroka
do
from_IP=`echo "${stroka}" | awk '{print $1}'`
port_from_IP=`echo "${stroka}" | awk '{print $2}'`
to_IP=`echo "${stroka}" | awk '{print $3}'`
port_to_IP=`echo "${stroka}" | awk '{print $4}'`
protocol=`echo "${stroka}" | awk '{print $5}'`
bytes=`echo "${stroka}" | awk '{print $6}'`
all_bytes=`echo "${stroka}" | awk '{print $7}'`

${sql_preffix} --execute="INSERT INTO \`traffic_tmp\` (\`date\`, \
\`time\`, \`from_IP\`, \`port_from_IP\`, \`to_IP\`, \`port_to_IP\`, \
\`protocol\`, \`bytes\`, \`all_bytes\`) \
values ('${day}', '${curr_time}', '${from_IP}', \
'${port_from_IP}', '${to_IP}', '${port_to_IP}', \
'${protocol}', '${bytes}', '${all_bytes}')"
done
}

${sql_preffix} --execute="DELETE FROM \`traffic_tmp\` WHERE from_IP='' AND \
port_from_IP='' AND to_IP='' AND port_to_IP='' AND protocol=''"

${sql_preffix} --execute="DELETE FROM \`traffic_tmp\` WHERE all_bytes='0'"

${sql_preffix} --execute="CREATE TABLE \`${iface}_${year}\` \
(\`unic_id\` INT(16) NOT NULL AUTO_INCREMENT, \
\`date\` DATE NOT NULL, \`time\` TIME NOT NULL, \
\`from_IP\` CHAR(16) NOT NULL, \`port_from_IP\` CHAR(8) NOT NULL, \
\`to_IP\` CHAR(16) NOT NULL, \`port_to_IP\` CHAR(8) NOT NULL, \
\`protocol\` ENUM('icmp','tcp','udp') NOT NULL, \`bytes\` int(16) NOT NULL, \
\`all_bytes\` int(16) NOT NULL, \
PRIMARY KEY (\`unic_id\`), \
KEY \`date\`(\`date\`) \
) TYPE=MyISAM COMMENT=' \
  O (${iface})   ${year} O'" 2>/dev/null
  
  
  ${sql_preffix} --execute="INSERT INTO \`${iface}_${year}\`\
  (\`date\`, \`time\`, \`from_IP\`, \`port_from_IP\`, \`to_IP\`,\
  \`port_to_IP\`, \`protocol\`, \`bytes\`, \`all_bytes\`) \
  SELECT \`date\`, \`time\`, \`from_IP\`, \`port_from_IP\`,\
  \`to_IP\`, \`port_to_IP\`, \`protocol\`, sum(\`bytes\`) as \`bytes\`,\
  sum(\`all_bytes\`) as \`all_bytes\` FROM \
  \`traffic_tmp\` GROUP BY \`date\`, \`time\`, \`from_IP\`, \`port_from_IP\`,\
   \`to_IP\`, \`port_to_IP\`, \`protocol\`"
   
   done
   
   cat /dev/null > /usr/var/log/traffic.log

Пример скрипта

Добавлено: 2006-08-23 7:24:38
Alex Keda
по внешнему интерфейсу считаешь?
====
uname -a

Добавлено: 2006-08-23 7:30:09
temik
нет внутренний

Добавлено: 2006-08-23 7:31:28
temik
272-078-227 стукнись в аську, если не трудно

Добавлено: 2006-08-23 7:41:49
Alex Keda
не стукнусь :) Так неинтересно.
====
посчитай по внешнему. с провом-то ты общаешься по внешнему а не по внутреннему интерфейсу...