Fix DB e visualizzazione nomi hosts

This commit is contained in:
cmaffio
2016-07-14 14:42:40 +02:00
parent e130116fa8
commit 0d49ff50c2
5 changed files with 138 additions and 38 deletions

View File

@@ -65,7 +65,21 @@ $query = " SELECT
AND AND
data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo)
GROUP BY 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 UNION
SELECT SELECT
DATE_FORMAT(DATE_SUB(NOW(), INTERVAL tempo $gruppo), '$format1'), DATE_FORMAT(DATE_SUB(NOW(), INTERVAL tempo $gruppo), '$format1'),
@@ -77,7 +91,6 @@ $query = " SELECT
WHERE WHERE
tempo BETWEEN 0 AND $limit; tempo BETWEEN 0 AND $limit;
"; ";
//print $query; exit;
$res = mysql_query( $query, $DB_ID ); $res = mysql_query( $query, $DB_ID );

View File

@@ -49,7 +49,7 @@ while ($dato = mysql_fetch_array ( $res )) {
<?php } ?> <?php } ?>
<td rowspan=2 class="col3btn"><a href="pool_ip.php?id=<?php print $dato['id'] ?>"><img src="<?php print $CONF['base_url'] ?>/img/modify.gif" ALT="Dettaglio" TITLE="Dettaglio"></a></td> <td rowspan=2 class="col3btn"><a href="pool_ip.php?id=<?php print $dato['id'] ?>"><img src="<?php print $CONF['base_url'] ?>/img/modify.gif" ALT="Dettaglio" TITLE="Dettaglio"></a></td>
<td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td <?php if ($dato['nome'] == "") print "rowspan=2" ?> class="colip"><?php print $dato['ip'] ?></td> <td class="colip"><?php print $dato['ip'] ?></td>
<td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td class="descrizione">Inviati</td> <td class="descrizione">Inviati</td>
<td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
@@ -58,10 +58,7 @@ while ($dato = mysql_fetch_array ( $res )) {
<td class="colimg"><img border="0" src="barra.php?max=<?php print $max ?>&val=<?php print $dato['inviati'] ?>&col=red"></td> <td class="colimg"><img border="0" src="barra.php?max=<?php print $max ?>&val=<?php print $dato['inviati'] ?>&col=red"></td>
</tr> </tr>
<tr> <tr>
<?php <td class="colip"><?php if ($dato['nome'] != "") { print $dato['nome']; } else { $host = gethostbyaddr ($dato['ip']); print substr($host, 0, strpos($host, ".")); } ?></td>
if ($dato['nome'] != "") { ?>
<td class="colip"><?php print $dato['nome'] ?></td>
<?php } ?>
<td class="descrizione">Ricevuti</td> <td class="descrizione">Ricevuti</td>
<td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td class="colspeed"><?php print byteConvert($dato['ricevuti']) ?></td> <td class="colspeed"><?php print byteConvert($dato['ricevuti']) ?></td>

View File

@@ -45,10 +45,29 @@ if (isset($_GET['id'])) {
proxy_pool.id = $id proxy_pool.id = $id
AND AND
proxy_dati.data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) 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 ); $res = mysql_query( $query, $DB_ID );
$dato = mysql_fetch_array ( $res ); $dato1 = mysql_fetch_array ( $res );
$dato2 = mysql_fetch_array ( $res );
?> ?>
<tr> <tr>
<td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
@@ -69,34 +88,34 @@ $tabella->intestazione (array("", "IP", "", "Nome", "", "", "Inizio dati", "", "
?> ?>
<tr> <tr>
<?php <?php
if ($dato['attivo']) { if ($dato1['attivo']) {
?> ?>
<td class="col3btn"><a href="proxy_gest.php?azione=pool_rem&id=<?php print $ip ?>"><img src="<?php print $CONF['base_url'] ?>/img/non_attivo.gif" ALT="Utente limitato" TITLE="Utente limitato"></a></td> <td class="col3btn"><a href="proxy_gest.php?azione=pool_rem&id=<?php print $ip ?>"><img src="<?php print $CONF['base_url'] ?>/img/non_attivo.gif" ALT="Utente limitato" TITLE="Utente limitato"></a></td>
<?php } else { ?> <?php } else { ?>
<td class="col3btn"><a href="proxy_gest.php?azione=pool_ins&id=<?php print $ip ?>"><img src="<?php print $CONF['base_url'] ?>/img/attivo.gif" ALT="Utente non limitato" TITLE="Utente non limitato"></a></td> <td class="col3btn"><a href="proxy_gest.php?azione=pool_ins&id=<?php print $ip ?>"><img src="<?php print $CONF['base_url'] ?>/img/attivo.gif" ALT="Utente non limitato" TITLE="Utente non limitato"></a></td>
<?php } ?> <?php } ?>
<td class="colip"><?php print $dato['ip'] ?></td> <td class="colip"><?php if ($dato1['ip'] != "") { print $dato1['ip']; } else { print $dato2['ip']; } ?></td>
<td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td class="colip"> <td class="colip">
<input type="text" name="nome" value="<?php print $dato['nome'] ?>"> <input type="text" name="nome" value="<?php print $dato1['nome'] ?>">
<input type="hidden" name="nomeold" value="<?php print $dato['nome'] ?>"> <input type="hidden" name="nomeold" value="<?php print $dato1['nome'] ?>">
</td> </td>
<td class="spazioh"> <td class="spazioh">
<input name="modifica" type="image" src="<?php print $CONF['base_url'] ?>/img/applica.png" alt="Modifica" title="Modifica"> <input name="modifica" type="image" src="<?php print $CONF['base_url'] ?>/img/applica.png" alt="Modifica" title="Modifica">
</td> </td>
<td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td class="colip"><?php print $dato['first'] ?></td> <td class="colip"><?php if ($dato2['first'] != "") { print $dato2['first']; } else { print $dato1['first']; } ?></td>
<td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td class="colip"><?php print $dato['last'] ?></td> <td class="colip"><?php if ($dato1['last'] != "") { print $dato1['last']; } else { print $dato2['last']; } ?></td>
<td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td class="colspeed"><?php print byteConvert($dato['inviati']) ?></td> <td class="colspeed"><?php print byteConvert($dato1['inviati']+$dato2['inviati']) ?></td>
<td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td class="colspeed"><?php print byteConvert($dato['ricevuti']) ?></td> <td class="colspeed"><?php print byteConvert($dato1['ricevuti']+$dato2['ricevuti']) ?></td>
<td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
</tr> </tr>
<?php <?php
$tabella->riga(); ?> $tabella->riga(); ?>
<tr><td colspan=14 align="center"><img src="<?php print $CONF['base_url'] ?>/proxy/graph.php?ip=<?php print $dato['ip'] ?>&tempo=<?php print $tempo ?>"></td></tr> <tr><td colspan=14 align="center"><img src="<?php print $CONF['base_url'] ?>/proxy/graph.php?ip=<?php if ($dato1['ip'] != "") { print $dato1['ip']; } else { print $dato2['ip']; } ?>&tempo=<?php print $tempo ?>"></td></tr>
<?php <?php
$tabella->riga(); $tabella->riga();
} else { } else {

View File

@@ -47,7 +47,25 @@ if (isset($_POST['ordina'])) {
</tr> </tr>
<?php <?php
$tabella->riga(); $tabella->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 ); $res = mysql_query( $query, $DB_ID );
$max = 0; $max = 0;
while ($valori = mysql_fetch_array ( $res )) { while ($valori = mysql_fetch_array ( $res )) {
@@ -60,17 +78,43 @@ $query = " SELECT
proxy_pool.id, proxy_pool.id,
proxy_pool.nome, proxy_pool.nome,
proxy_pool.attivo, proxy_pool.attivo,
proxy_dati.ip, querytot.ip,
MIN(proxy_dati.data_destroy) AS first, MIN(querytot.minimo) AS first,
MAX(proxy_dati.data_destroy) AS last, MAX(querytot.massimo) AS last,
SUM(proxy_dati.inviati) AS inviati, SUM(querytot.recv) AS inviati,
SUM(proxy_dati.ricevuti) AS ricevuti SUM(querytot.send) AS ricevuti
FROM FROM (
proxy_dati 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 JOIN
proxy_pool proxy_pool
ON ON
proxy_dati.ip = proxy_pool.ip querytot.ip = proxy_pool.ip
WHERE WHERE
data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo) data_destroy >= DATE_SUB(NOW(), INTERVAL 1 $tempo)
GROUP BY GROUP BY
@@ -87,7 +131,19 @@ $query = " SELECT
FROM FROM
proxy_pool proxy_pool
WHERE 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 ORDER BY
$ordina $ordina
"; ";
@@ -107,7 +163,7 @@ while ($dato = mysql_fetch_array ( $res )) {
<td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td rowspan=2 class="spazioh"><a href="pool_acl.php?id=<?php print $dato['id'] ?>"><img src="<?php print $CONF['base_url'] ?>/img/edit-regole.gif" ALT="ACL" TITLE="ACL"></a></td> <td rowspan=2 class="spazioh"><a href="pool_acl.php?id=<?php print $dato['id'] ?>"><img src="<?php print $CONF['base_url'] ?>/img/edit-regole.gif" ALT="ACL" TITLE="ACL"></a></td>
<td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td <?php if ($dato['nome'] == "") print "rowspan=2" ?> class="colip"><?php print $dato['ip'] ?></td> <td class="colip"><?php print $dato['ip'] ?></td>
<td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
<td class="colip"><?php print $dato['first'] ?></td> <td class="colip"><?php print $dato['first'] ?></td>
<td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td rowspan=2 class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>
@@ -119,9 +175,7 @@ while ($dato = mysql_fetch_array ( $res )) {
</td> </td>
</tr> </tr>
<tr> <tr>
<?php if ($dato['nome'] != "") { ?> <td class="colip"><?php if ($dato['nome'] != "") { print $dato['nome']; } else { $host = gethostbyaddr ($dato['ip']); print substr($host, 0, strpos($host, ".")); } ?></td>
<td class="colip"><?php print $dato['nome'] ?></td>
<?php } ?>
<td class="colip"><?php print $dato['last'] ?></td> <td class="colip"><?php print $dato['last'] ?></td>
<td class="descrizione">Ricevuti</td> <td class="descrizione">Ricevuti</td>
<td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td> <td class="spazioh"><img src="<?php print $CONF['base_url'] ?>/img/spazio.gif"></td>

View File

@@ -13,8 +13,9 @@ while( $_ = shift @ARGV ) {
$start = 1 if /^\-i$/; $start = 1 if /^\-i$/;
} }
my $tabella = "proxy_dati"; my $tabella = "proxy_dati_storico";
my $campo = "data_destroy"; my $tabella_orig = "proxy_dati";
my $campo = "data_destroy";
open CONFFILE, "< $Bin/../core/config.php" or die ("Manca file di configurazione\n"); open CONFFILE, "< $Bin/../core/config.php" or die ("Manca file di configurazione\n");
while (<CONFFILE>) { while (<CONFFILE>) {
@@ -38,22 +39,30 @@ $sts = $dbmysql->prepare("use $db_name");
$sts->execute (); $sts->execute ();
if ($start) { if ($start) {
inizializza($dbmysql, $tabella, $campo); inizializza($dbmysql, $tabella, $campo, $tabella_orig);
exit; exit;
} }
aggiorna($dbmysql, $tabella, $campo); aggiorna($dbmysql, $tabella, $campo, $tabella_orig);
exit; exit;
sub inizializza { sub inizializza {
my $dbmysql = shift; my $dbmysql = shift;
my $tabella = shift; my $tabella = shift;
my $campo = shift; my $campo = shift;
my $tabella_orig = shift;
printf "Inizio attivita' %s\n",strftime('%d-%m-%Y %H:%M:%S',localtime) if ($messaggi); 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"; $part = "ALTER TABLE $tabella PARTITION BY RANGE ( TO_DAYS($campo) ) (\n";
$query = " SELECT $query = " SELECT
@@ -90,9 +99,17 @@ sub aggiorna {
my $dbmysql = shift; my $dbmysql = shift;
my $tabella = shift; my $tabella = shift;
my $campo = shift; my $campo = shift;
my $tabella_orig = shift;
printf "Inizio attivita' %s\n",strftime('%d-%m-%Y %H:%M:%S',localtime) if ($messaggi); 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"; $query = "SHOW CREATE TABLE $tabella";
$sts = $dbmysql->prepare($query); $sts = $dbmysql->prepare($query);
$sts->execute (); $sts->execute ();