'.__('Database Maintenance').' >'.__('Database purge').'

'.__('Get data from agent').'

'; // All data (now) $time["all"] = time (); // 1 day ago $time["1day"] = $time["all"]-86400; // 3 days ago $time["3day"] = $time["all"]-(86400*3); // 1 week ago $time["1week"] = $time["all"]-(86400*7); // 2 weeks ago $time["2week"] = $time["all"]-(86400*14); // 1 month ago $time["1month"] = $time["all"]-(86400*30); // Three months ago $time["3month"] = $time["all"]-(86400*90); //Init data $data["1day"] = 0; $data["3day"] = 0; $data["1week"] = 0; $data["2week"] = 0; $data["1month"] = 0; $data["3month"] = 0; $data["total"] = 0; # ADQUIRE DATA PASSED AS FORM PARAMETERS # ====================================== # Purge data using dates if (isset($_POST["purgedb"])) { $from_date = get_parameter_post ("date_purge",0); //0: No time selected if ($id_agent != -1) { echo __('Purge task launched for agent')." ".dame_nombre_agente ($id_agent)." :: ".__('Data older than')." ".human_time_description ($from_date); echo "

".__('Please be patient. This operation can take a long time depending on the amount of modules.')."

"; $sql = sprintf ("SELECT id_agente_modulo FROM tagente_modulo WHERE id_agente = %d",$id_agent); $result=get_db_all_rows_sql($sql); //Made it in a transaction so it gets done all at once. process_sql ("SET AUTOCOMMIT=0;"); process_sql ("START TRANSACTION;"); //We start a transaction for consistency $errors = 0; foreach ($result as $row) { echo __('Deleting records for module')." ".dame_nombre_modulo_agentemodulo ($row["id_agente_modulo"]); echo "
"; flush (); //Flush here in case there are errors and the script dies, at least we know where we ended set_time_limit (); //Reset the time limit just in case $sql = sprintf("DELETE FROM `tagente_datos` WHERE `id_agente_modulo` = '%d' AND `utimestamp` < '%d'",$row["id_agente_modulo"],$from_date); if (process_sql ($sql) === false) $errors++; $sql = sprintf("DELETE FROM `tagente_datos_inc` WHERE `id_agente_modulo` = '%d' AND `utimestamp` < '%d'",$row["id_agente_modulo"],$from_date); if (process_sql ($sql) === false) $errors++; $sql = sprintf("DELETE FROM `tagente_datos_string` WHERE `id_agente_modulo` = '%d' AND `utimestamp` < '%d'",$row["id_agente_modulo"],$from_date); if (process_sql ($sql) === false) $errors++; } if ($errors > 0) { process_sql ("ROLLBACK;"); //If we have errors, rollback } else { process_sql ("COMMIT;"); //Otherwise commit } process_sql ("SET AUTOCOMMIT=1;"); //Set autocommit back to 1 } else { //All agents echo __('Deleting records for all agents'); flush(); //ob_flush(); $query = sprintf("DELETE FROM `tagente_datos` WHERE `utimestamp` < '%d'",$from_date); process_sql ($query); $query = sprintf("DELETE FROM `tagente_datos_inc` WHERE `utimestamp` < '%d'",$from_date); process_sql ($query); $query = sprintf("DELETE FROM `tagente_datos_string` WHERE `utimestamp` < '%d'",$from_date); process_sql ($query); } echo "

"; } # Select Agent for further operations. echo '
'; $agents[-1] = __('Choose agent'); $agents[0] = __('All agents'); $result = get_agents_in_group (1); if ($result === false) $result = array(); foreach ($result as $row) { $agents[$row["id_agente"]] = $row["nombre"]; } print_select ($agents, "agent", $id_agent, "", "", "", false, false, false); print_help_tip (__("Select the agent you want information about")); echo ''; print_help_tip (__("Click here to get the data from the agent specified in the select box")); echo '

'; if ($id_agent > 0) { $title = __('Information on agent').' '.dame_nombre_agente ($id_agent).' '.__('in the database'); } else { $title = __('Information on all agents').' '.__('in the database'); } echo "

".$title."

"; $query = ""; if ($id_agent > 0) { //If the agent is not All or Not selected $query = sprintf (" AND id_agente_modulo = ANY(SELECT id_agente_modulo FROM tagente_modulo WHERE id_agente = '%d' ",$id_agent); } $data["1day"] = get_db_sql (sprintf ("SELECT COUNT(id_agente_datos) FROM tagente_datos WHERE utimestamp > %d %s", $time["1day"], $query)); $data["3day"] = get_db_sql (sprintf ("SELECT COUNT(id_agente_datos) FROM tagente_datos WHERE utimestamp > %d %s", $time["3day"], $query)); $data["1week"] = get_db_sql (sprintf ("SELECT COUNT(id_agente_datos) FROM tagente_datos WHERE utimestamp > %d %s", $time["1week"], $query)); $data["2week"] = get_db_sql (sprintf ("SELECT COUNT(id_agente_datos) FROM tagente_datos WHERE utimestamp > %d %s", $time["2week"], $query)); $data["1month"] = get_db_sql (sprintf ("SELECT COUNT(id_agente_datos) FROM tagente_datos WHERE utimestamp > %d %s", $time["1month"], $query)); $data["3month"] = get_db_sql (sprintf ("SELECT COUNT(id_agente_datos) FROM tagente_datos WHERE utimestamp > %d %s", $time["3month"], $query)); $data["total"] = get_db_sql (sprintf ("SELECT COUNT(id_agente_datos) FROM tagente_datos WHERE 1=1 %s", $query)); $data["1day"] += get_db_sql (sprintf ("SELECT COUNT(id_tagente_datos_string) FROM tagente_datos_string WHERE utimestamp > %d %s", $time["1day"], $query)); $data["3day"] += get_db_sql (sprintf ("SELECT COUNT(id_tagente_datos_string) FROM tagente_datos_string WHERE utimestamp > %d %s", $time["3day"], $query)); $data["1week"] += get_db_sql (sprintf ("SELECT COUNT(id_tagente_datos_string) FROM tagente_datos_string WHERE utimestamp > %d %s", $time["1week"], $query)); $data["2week"] += get_db_sql (sprintf ("SELECT COUNT(id_tagente_datos_string) FROM tagente_datos_string WHERE utimestamp > %d %s", $time["2week"], $query)); $data["1month"] += get_db_sql (sprintf ("SELECT COUNT(id_tagente_datos_string) FROM tagente_datos_string WHERE utimestamp > %d %s", $time["1month"], $query)); $data["3month"] += get_db_sql (sprintf ("SELECT COUNT(id_tagente_datos_string) FROM tagente_datos_string WHERE utimestamp > %d %s", $time["3month"], $query)); $data["total"] += get_db_sql (sprintf ("SELECT COUNT(id_tagente_datos_string) FROM tagente_datos_string WHERE 1=1 %s", $query)); if (isset ($table)) { unset ($table); //since $table is an object, we make sure it's gone first } $table->width = 300; $table->border = 0; $table->class = "databox"; $table->cellspacing = 4; $table->cellpadding = 4; $table->data[0] = array (__('Packets less than three months old'), $data["3month"]); $table->data[1] = array (__('Packets less than one month old'), $data["1month"]); $table->data[2] = array (__('Packets less than two weeks old'), $data["2week"]); $table->data[3] = array (__('Packets less than one week old'), $data["1week"]); $table->data[4] = array (__('Packets less than three days old'), $data["3day"]); $table->data[5] = array (__('Packets less than one day old'), $data["1day"]); $table->data[6] = array (''.__('Total number of packets').'', ''.$data["total"].''); print_table ($table); echo '
'; echo '

'.__('Purge data').'

'; ?>