From 0d49ff50c2833426f7a2ab787d2b0520aff426cd Mon Sep 17 00:00:00 2001 From: cmaffio Date: Thu, 14 Jul 2016 14:42:40 +0200 Subject: [PATCH] Fix DB e visualizzazione nomi hosts --- proxy/graph.php | 17 +++++++-- proxy/index.php | 7 ++-- proxy/pool_ip.php | 39 ++++++++++++++------ proxy/pool_lista.php | 82 ++++++++++++++++++++++++++++++++++-------- script/partitioning.pl | 31 ++++++++++++---- 5 files changed, 138 insertions(+), 38 deletions(-) diff --git a/proxy/graph.php b/proxy/graph.php index 5b41275..39867fc 100644 --- a/proxy/graph.php +++ b/proxy/graph.php @@ -65,7 +65,21 @@ $query = " SELECT AND data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) GROUP BY - $gruppo(data_destroy) + $gruppo(data_destroy) + UNION + SELECT + DATE_FORMAT(data_destroy,'$format1'), + DATE_FORMAT(data_destroy,'$format2'), + SUM(inviati), + SUM(ricevuti) + FROM + proxy_dati_storico + WHERE + ip = '$ip' + AND + data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) + GROUP BY + $gruppo(data_destroy) UNION SELECT DATE_FORMAT(DATE_SUB(NOW(), INTERVAL tempo $gruppo), '$format1'), @@ -77,7 +91,6 @@ $query = " SELECT WHERE tempo BETWEEN 0 AND $limit; "; -//print $query; exit; $res = mysql_query( $query, $DB_ID ); diff --git a/proxy/index.php b/proxy/index.php index ba4858c..771e0fe 100755 --- a/proxy/index.php +++ b/proxy/index.php @@ -49,7 +49,7 @@ while ($dato = mysql_fetch_array ( $res )) { Dettaglio - class="colip"> + Inviati @@ -58,10 +58,7 @@ while ($dato = mysql_fetch_array ( $res )) { - - - + Ricevuti diff --git a/proxy/pool_ip.php b/proxy/pool_ip.php index 0f05881..1975d24 100755 --- a/proxy/pool_ip.php +++ b/proxy/pool_ip.php @@ -45,10 +45,29 @@ if (isset($_GET['id'])) { proxy_pool.id = $id AND proxy_dati.data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) + UNION SELECT + proxy_pool.attivo, + proxy_dati_storico.ip, + proxy_pool.nome, + MIN(proxy_dati_storico.data_destroy) AS first, + MAX(proxy_dati_storico.data_destroy) AS last, + SUM(proxy_dati_storico.inviati) AS inviati, + SUM(proxy_dati_storico.ricevuti) AS ricevuti + FROM + proxy_dati_storico + JOIN + proxy_pool + ON + proxy_dati_storico.ip = proxy_pool.ip + WHERE + proxy_pool.id = $id + AND + proxy_dati_storico.data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) "; $res = mysql_query( $query, $DB_ID ); - $dato = mysql_fetch_array ( $res ); + $dato1 = mysql_fetch_array ( $res ); + $dato2 = mysql_fetch_array ( $res ); ?> @@ -69,34 +88,34 @@ $tabella->intestazione (array("", "IP", "", "Nome", "", "", "Inizio dati", "", " ?> Utente limitato Utente non limitato - + - - + + - + - + - + - + riga(); ?> - + &tempo="> riga(); } else { diff --git a/proxy/pool_lista.php b/proxy/pool_lista.php index 6216381..7ddcd77 100755 --- a/proxy/pool_lista.php +++ b/proxy/pool_lista.php @@ -47,7 +47,25 @@ if (isset($_POST['ordina'])) { riga(); -$query = "SELECT GREATEST (sum(inviati), sum(ricevuti)) AS max from proxy_dati WHERE data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) GROUP BY ip"; +$query = " SELECT + GREATEST (sum(inviati), sum(ricevuti)) AS max + FROM + proxy_dati + WHERE + data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) + GROUP BY + ip + UNION + SELECT + GREATEST (sum(inviati), sum(ricevuti)) AS max + FROM + proxy_dati_storico + WHERE + data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) + GROUP BY + ip + "; + $res = mysql_query( $query, $DB_ID ); $max = 0; while ($valori = mysql_fetch_array ( $res )) { @@ -60,17 +78,43 @@ $query = " SELECT proxy_pool.id, proxy_pool.nome, proxy_pool.attivo, - proxy_dati.ip, - MIN(proxy_dati.data_destroy) AS first, - MAX(proxy_dati.data_destroy) AS last, - SUM(proxy_dati.inviati) AS inviati, - SUM(proxy_dati.ricevuti) AS ricevuti - FROM - proxy_dati + querytot.ip, + MIN(querytot.minimo) AS first, + MAX(querytot.massimo) AS last, + SUM(querytot.recv) AS inviati, + SUM(querytot.send) AS ricevuti + FROM ( + SELECT + ip, + data_destroy, + MIN(data_destroy) AS minimo, + MAX(data_destroy) AS massimo, + SUM(inviati) AS recv, + SUM(ricevuti) AS send + FROM + proxy_dati + WHERE + data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) + GROUP BY + ip + UNION SELECT + ip, + data_destroy, + MIN(data_destroy) AS minimo, + MAX(data_destroy) AS massimo, + SUM(inviati) AS recv, + SUM(ricevuti) AS send + FROM + proxy_dati_storico + WHERE + data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) + GROUP BY + ip + ) querytot JOIN proxy_pool ON - proxy_dati.ip = proxy_pool.ip + querytot.ip = proxy_pool.ip WHERE data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) GROUP BY @@ -87,7 +131,19 @@ $query = " SELECT FROM proxy_pool WHERE - proxy_pool.ip NOT IN (SELECT ip FROM proxy_dati WHERE data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo)) + proxy_pool.ip NOT IN ( SELECT + ip + FROM + proxy_dati + WHERE + data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) + UNION SELECT + ip + FROM + proxy_dati_storico + WHERE + data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) + ) ORDER BY $ordina "; @@ -107,7 +163,7 @@ while ($dato = mysql_fetch_array ( $res )) { ACL - class="colip"> + @@ -119,9 +175,7 @@ while ($dato = mysql_fetch_array ( $res )) { - - - + Ricevuti diff --git a/script/partitioning.pl b/script/partitioning.pl index 4c75841..c6b5379 100755 --- a/script/partitioning.pl +++ b/script/partitioning.pl @@ -13,8 +13,9 @@ while( $_ = shift @ARGV ) { $start = 1 if /^\-i$/; } -my $tabella = "proxy_dati"; -my $campo = "data_destroy"; +my $tabella = "proxy_dati_storico"; +my $tabella_orig = "proxy_dati"; +my $campo = "data_destroy"; open CONFFILE, "< $Bin/../core/config.php" or die ("Manca file di configurazione\n"); while () { @@ -38,22 +39,30 @@ $sts = $dbmysql->prepare("use $db_name"); $sts->execute (); if ($start) { - inizializza($dbmysql, $tabella, $campo); + inizializza($dbmysql, $tabella, $campo, $tabella_orig); exit; } -aggiorna($dbmysql, $tabella, $campo); +aggiorna($dbmysql, $tabella, $campo, $tabella_orig); exit; sub inizializza { - my $dbmysql = shift; - my $tabella = shift; - my $campo = shift; + my $dbmysql = shift; + my $tabella = shift; + my $campo = shift; + my $tabella_orig = shift; printf "Inizio attivita' %s\n",strftime('%d-%m-%Y %H:%M:%S',localtime) if ($messaggi); + $copia = "INSERT INTO $tabella SELECT * FROM $tabella_orig WHERE $campo > '1970-01-01 00:00:00' AND $campo < DATE_SUB(NOW(), INTERVAL 1 DAY)"; + $rimuovi = "DELETE FROM $tabella_orig WHERE $campo > '1970-01-01 00:00:00' AND $campo < DATE_SUB(NOW(), INTERVAL 1 DAY)"; + $sts = $dbmysql->prepare($copia); + $sts->execute (); + $sts = $dbmysql->prepare($rimuovi); + $sts->execute (); + $part = "ALTER TABLE $tabella PARTITION BY RANGE ( TO_DAYS($campo) ) (\n"; $query = " SELECT @@ -90,9 +99,17 @@ sub aggiorna { my $dbmysql = shift; my $tabella = shift; my $campo = shift; + my $tabella_orig = shift; printf "Inizio attivita' %s\n",strftime('%d-%m-%Y %H:%M:%S',localtime) if ($messaggi); + $copia = "INSERT INTO $tabella SELECT * FROM $tabella_orig WHERE $campo > '1970-01-01 00:00:00' AND $campo < DATE_SUB(NOW(), INTERVAL 1 DAY)"; + $rimuovi = "DELETE FROM $tabella_orig WHERE $campo > '1970-01-01 00:00:00' AND $campo < DATE_SUB(NOW(), INTERVAL 1 DAY)"; + $sts = $dbmysql->prepare($copia); + $sts->execute (); + $sts = $dbmysql->prepare($rimuovi); + $sts->execute (); + $query = "SHOW CREATE TABLE $tabella"; $sts = $dbmysql->prepare($query); $sts->execute ();