суммирование по хостам ipacctd
Добавлено: 2011-04-05 13:32:44
Всем доброго времени суток!
Установил себе считалку траффика по статье ув. Lissyara, все по статье кроме как в базу ложится не $interface_$year, a $interface_$year_$month
и столкнулся с проблемой громадной базы, очень уж большая
Так вот решил, что можно суммировать траффик по одинаковым хостам в базе, для ее уменьшения, в идеале хочется это раз
в час делать
Но не получается реализовать, так как знаний практически нет, поэтому не пинайте сильно..
Вот что пока есть
test.php
В итоге, в базу кладется 4 строки со словами Array и ничего не удаляется
вот лог mysql
Помогите, люди
Тому кто поможет реализовать готов закинуть на телефон 1000 руб)
Установил себе считалку траффика по статье ув. Lissyara, все по статье кроме как в базу ложится не $interface_$year, a $interface_$year_$month
и столкнулся с проблемой громадной базы, очень уж большая
Так вот решил, что можно суммировать траффик по одинаковым хостам в базе, для ее уменьшения, в идеале хочется это раз
в час делать
Но не получается реализовать, так как знаний практически нет, поэтому не пинайте сильно..
Вот что пока есть
test.php
Код: Выделить всё
<?php
// IP хостов, интерфейсы,
$ip_out_servera = "xx.xx.xx.xx"; // внешний IP сервака
$ip_internal_servera = "192.168.101.254"; // внутренний IP сервака
$IF_out_servera = "ng0"; // название внешнего интерфейса сервака
$IF_internal_servera = "nfe0"; // название внутреннего интерфейса сервака
$lan_mask = "192.168.101."; // маска по которой выбираются IP для подсчёта
//Пароли для подключения к MySQL
$db_host = "localhost";
$db_user = "ipacctd";
$db_passwd = "xxxxxx";
$db_db = "ipacctd";
//Пытаемся приконнектится к БД
if(!mysql_connect($db_host,$db_user,$db_passwd))
{
echo "<br><br><BIG><CENTER>
неведомая фигня :(</CENTER></BIG>";
exit;
}
mysql_select_db($db_db);
$day = date('Y',time()) . "-" . date('m',time()) . "-" . date('d',time());
$toiplist = "select distinct to_IP FROM `" . $IF_internal_servera . "_" . date('Y',time()) . "_" . date('m',time()). "` WHERE `date` LIKE '" . $day . "'";
$fromiplist = "select distinct from_IP FROM `" . $IF_internal_servera . "_" . date('Y',time()) . "_" . date('m',time()). "` WHERE `date` LIKE '" . $day . "'";
$porttoiplist = "select distinct port_to_IP FROM `" . $IF_internal_servera . "_" . date('Y',time()) . "_" . date('m',time()). "` WHERE `date` LIKE '" . $day . "'";
$portfromiplist = "select distinct port_from_IP FROM `" . $IF_internal_servera . "_" . date('Y',time()) . "_" . date('m',time()). "` WHERE `date` LIKE '" . $day . "'";
$protocollist = "select distinct protocol FROM `" . $IF_internal_servera . "_" . date('Y',time()) . "_" . date('m',time()). "` WHERE `date` LIKE '" . $day . "'";
$toiplist_ok = mysql_query($toiplist)or die("Error in query: ".mysql_error());
$fromiplist_ok = mysql_query($fromiplist)or die("Error in query: ".mysql_error());
$porttoiplist_ok = mysql_query($porttoiplist)or die("Error in query: ".mysql_error());
$portfromiplist_ok = mysql_query($portfromiplist)or die("Error in query: ".mysql_error());
$protocollist_ok = mysql_query($protocollist)or die("Error in query: ".mysql_error());
while ($a = mysql_fetch_assoc($toiplist_ok)) {
while ($b = mysql_fetch_assoc($fromiplist_ok)) {
while ($c = mysql_fetch_assoc($porttoiplist_ok)) {
while ($d = mysql_fetch_assoc($portfromiplist_ok)) {
while ($e = mysql_fetch_assoc($protocollist_ok)) {
$bytes = "select sum(bytes) as `bytes` from `" . $IF_internal_servera . "_" . date('Y',time()) . "_" . date('m',time()). "` where `to_IP` LIKE '" . $a . "' and `from_IP` LIKE '" . $b . "' and `port_to_IP` LIKE '" . $c . "' and `port_from_IP` LIKE '" . $d . "' and `protocol` LIKE '" . $e . "' and `date` like '" . $day . "'";
$paketov = "select sum(paketov) as `paketov` from `" . $IF_internal_servera . "_" . date('Y',time()) . "_" . date('m',time()). "` where `to_IP` LIKE '" . $a . "' and `from_IP` LIKE '" . $b . "' and `port_to_IP` LIKE '" . $c . "' and `port_from_IP` LIKE '" . $d . "' and `protocol` LIKE '" . $e . "' and `date` like '" . $day . "'";
$bytes_ok = mysql_query($bytes)or die("Error in query: ".mysql_error());
$paketov_ok = mysql_query($paketov)or die("Error in query: ".mysql_error());
while ($f = mysql_fetch_assoc($bytes_ok)) {
while ($g = mysql_fetch_assoc($paketov_ok)) {
$sum_bytes = $f['bytes'];
$sum_paketov = $g['paketov'];
$result = mysql_query("delete from `" . $IF_internal_servera . "_" . date('Y',time()) . "_" . date('m',time()). "` where `to_IP` LIKE '" . $a . "' and `from_IP` LIKE '" . $b . "' and `port_to_IP` LIKE '" . $c . "' and `port_from_IP` LIKE '" . $d . "' and `protocol` LIKE '" . $e . "' and `date` like '" . $day . "'") or die("Invalid query1: " . mysql_error());
$result = mysql_query("insert into `" . $IF_internal_servera . "_" . date('Y',time()) . "_" . date('m',time()). "` (`date`,`time`,`unix_time`,`from_IP`,`port_from_IP`,`to_IP`,`port_to_IP`,`protocol`,`bytes`,`paketov`) VALUES(DATE(NOW()),TIME(NOW()),UNIX_TIMESTAMP(),'" . $b . "','" . $d . "','" . $a . "','" . $c . "','" . $e . "','" . $f . "','" . $g . "')")or die("Invalid query2: " . mysql_error());
echo "Успех!<br>";
}
}
}
}
}
}
}
?>
вот лог mysql
Код: Выделить всё
110405 14:07:48> 148 Connect ipacctd@localhost on.
<------><------> 148 Init DB ipacctd
<------><------> 148 Query select distinct to_IP FROM `nfe0_2011_04` WHERE `date` LIKE '2011-04-05'
<------><------> 148 Query select distinct from_IP FROM `nfe0_2011_04` WHERE `date` LIKE '2011-04-05'
110405 14:07:49> 148 Query select distinct port_to_IP FROM `nfe0_2011_04` WHERE `date` LIKE '2011-04-05'
<------><------> 148 Query select distinct port_from_IP FROM `nfe0_2011_04` WHERE `date` LIKE '2011-04-05'
<------><------> 148 Query select distinct protocol FROM `nfe0_2011_04` WHERE `date` LIKE '2011-04-05'
<------><------> 148 Query select sum(bytes) as `bytes` from `nfe0_2011_04` where `to_IP` LIKE 'Array' and `from_IP` LIKE 'Array' and `port_to_IP` LIKE 'Array' and `port_from_IP` LIKE 'Array' and `protocol` LIKE 'Array' and `date` like '2011-04-05'
<------><------> 148 Query select sum(paketov) as `paketov` from `nfe0_2011_04` where `to_IP` LIKE 'Array' and `from_IP` LIKE 'Array' and `port_to_IP` LIKE 'Array' and `port_from_IP` LIKE 'Array' and `protocol` LIKE 'Array' and `date` like '2011-04-05'
<------><------> 148 Query delete from `nfe0_2011_04` where `to_IP` LIKE 'Array' and `from_IP` LIKE 'Array' and `port_to_IP` LIKE 'Array' and `port_from_IP` LIKE 'Array' and `protocol` LIKE 'Array' and `date` like '2011-04-05'
<------><------> 148 Query insert into `nfe0_2011_04` (`date`,`time`,`unix_time`,`from_IP`,`port_from_IP`,`to_IP`,`port_to_IP`,`protocol`,`bytes`,`paketov`) VALUES(DATE(NOW()),TIME(NOW()),UNIX_TIMESTAMP(),'Array','Array','Array','Array','Array','Array','Array')
<------><------> 148 Query select sum(bytes) as `bytes` from `nfe0_2011_04` where `to_IP` LIKE 'Array' and `from_IP` LIKE 'Array' and `port_to_IP` LIKE 'Array' and `port_from_IP` LIKE 'Array' and `protocol` LIKE 'Array' and `date` like '2011-04-05'
<------><------> 148 Query select sum(paketov) as `paketov` from `nfe0_2011_04` where `to_IP` LIKE 'Array' and `from_IP` LIKE 'Array' and `port_to_IP` LIKE 'Array' and `port_from_IP` LIKE 'Array' and `protocol` LIKE 'Array' and `date` like '2011-04-05'
<------><------> 148 Query delete from `nfe0_2011_04` where `to_IP` LIKE 'Array' and `from_IP` LIKE 'Array' and `port_to_IP` LIKE 'Array' and `port_from_IP` LIKE 'Array' and `protocol` LIKE 'Array' and `date` like '2011-04-05'
<------><------> 148 Query insert into `nfe0_2011_04` (`date`,`time`,`unix_time`,`from_IP`,`port_from_IP`,`to_IP`,`port_to_IP`,`protocol`,`bytes`,`paketov`) VALUES(DATE(NOW()),TIME(NOW()),UNIX_TIMESTAMP(),'Array','Array','Array','Array','Array','Array','Array')
<------><------> 148 Query select sum(bytes) as `bytes` from `nfe0_2011_04` where `to_IP` LIKE 'Array' and `from_IP` LIKE 'Array' and `port_to_IP` LIKE 'Array' and `port_from_IP` LIKE 'Array' and `protocol` LIKE 'Array' and `date` like '2011-04-05'
<------><------> 148 Query select sum(paketov) as `paketov` from `nfe0_2011_04` where `to_IP` LIKE 'Array' and `from_IP` LIKE 'Array' and `port_to_IP` LIKE 'Array' and `port_from_IP` LIKE 'Array' and `protocol` LIKE 'Array' and `date` like '2011-04-05'
<------><------> 148 Query delete from `nfe0_2011_04` where `to_IP` LIKE 'Array' and `from_IP` LIKE 'Array' and `port_to_IP` LIKE 'Array' and `port_from_IP` LIKE 'Array' and `protocol` LIKE 'Array' and `date` like '2011-04-05'
<------><------> 148 Query insert into `nfe0_2011_04` (`date`,`time`,`unix_time`,`from_IP`,`port_from_IP`,`to_IP`,`port_to_IP`,`protocol`,`bytes`,`paketov`) VALUES(DATE(NOW()),TIME(NOW()),UNIX_TIMESTAMP(),'Array','Array','Array','Array','Array','Array','Array')
<------><------> 148 Query select sum(bytes) as `bytes` from `nfe0_2011_04` where `to_IP` LIKE 'Array' and `from_IP` LIKE 'Array' and `port_to_IP` LIKE 'Array' and `port_from_IP` LIKE 'Array' and `protocol` LIKE 'Array' and `date` like '2011-04-05'
<------><------> 148 Query select sum(paketov) as `paketov` from `nfe0_2011_04` where `to_IP` LIKE 'Array' and `from_IP` LIKE 'Array' and `port_to_IP` LIKE 'Array' and `port_from_IP` LIKE 'Array' and `protocol` LIKE 'Array' and `date` like '2011-04-05'
<------><------> 148 Query delete from `nfe0_2011_04` where `to_IP` LIKE 'Array' and `from_IP` LIKE 'Array' and `port_to_IP` LIKE 'Array' and `port_from_IP` LIKE 'Array' and `protocol` LIKE 'Array' and `date` like '2011-04-05'
<------><------> 148 Query insert into `nfe0_2011_04` (`date`,`time`,`unix_time`,`from_IP`,`port_from_IP`,`to_IP`,`port_to_IP`,`protocol`,`bytes`,`paketov`) VALUES(DATE(NOW()),TIME(NOW()),UNIX_TIMESTAMP(),'Array','Array','Array','Array','Array','Array','Array')
<------><------> 148 Quit.......
Тому кто поможет реализовать готов закинуть на телефон 1000 руб)