Do not delete old data when the interval is set to 0.

This commit is contained in:
Ramon Novoa 2015-01-07 13:47:19 +01:00
parent d690427209
commit 52fde88494
1 changed files with 172 additions and 137 deletions

View File

@ -79,6 +79,20 @@ sub pandora_purgedb ($$) {
my $timestamp = strftime ("%Y-%m-%d %H:%M:%S", localtime()); my $timestamp = strftime ("%Y-%m-%d %H:%M:%S", localtime());
my $ulimit_access_timestamp = time() - 86400; my $ulimit_access_timestamp = time() - 86400;
my $ulimit_timestamp = time() - (86400 * $conf->{'_days_purge'}); my $ulimit_timestamp = time() - (86400 * $conf->{'_days_purge'});
my $first_mark;
my $total_time;
my $purge_steps;
my $purge_count;
# Delete extended session data
if (enterprise_load (\%conf) != 0) {
db_do ($dbh, "DELETE FROM tsesion_extended
WHERE id_sesion NOT IN ( SELECT id_sesion FROM tsesion );");
log_message ('PURGE', 'Deleting old extended session data.');
}
# Delete old data
if ($conf->{'_days_purge'} > 0) {
# Delete old numeric data # Delete old numeric data
pandora_delete_old_module_data ($dbh, 'tagente_datos', $ulimit_access_timestamp, $ulimit_timestamp); pandora_delete_old_module_data ($dbh, 'tagente_datos', $ulimit_access_timestamp, $ulimit_timestamp);
@ -86,21 +100,7 @@ sub pandora_purgedb ($$) {
# Delete old export data # Delete old export data
pandora_delete_old_export_data ($dbh, $ulimit_timestamp); pandora_delete_old_export_data ($dbh, $ulimit_timestamp);
# Delete extended session data # Delete old inventory data
if (enterprise_load (\%conf) != 0) {
db_do ($dbh, "DELETE FROM tsesion_extended
WHERE id_sesion NOT IN ( SELECT id_sesion FROM tsesion );");
log_message ('PURGE', 'Deleting old extended session data.');
}
# Delete inventory data, only if enterprise is enabled
# We use the same value than regular data purge interval
my $first_mark;
my $total_time;
my $purge_steps;
my $purge_count;
if (enterprise_load (\%conf) != 0) { if (enterprise_load (\%conf) != 0) {
log_message ('PURGE', 'Deleting old inventory data.'); log_message ('PURGE', 'Deleting old inventory data.');
@ -153,20 +153,29 @@ sub pandora_purgedb ($$) {
else { else {
log_message ('PURGE', 'No data in tagente_datos_log4x.'); log_message ('PURGE', 'No data in tagente_datos_log4x.');
} }
}
else {
log_message ('PURGE', 'days_purge is set to 0. Old data will not be deleted.');
}
# String data deletion # String data deletion
if (!defined($conf->{'_string_purge'})){ if (!defined($conf->{'_string_purge'})){
$conf->{'_string_purge'} = 7; $conf->{'_string_purge'} = 7;
} }
if ($conf->{'_string_purge'} > 0) {
$ulimit_access_timestamp = time() - 86400; $ulimit_access_timestamp = time() - 86400;
$ulimit_timestamp = time() - (86400 * $conf->{'_days_purge'}); $ulimit_timestamp = time() - (86400 * $conf->{'_days_purge'});
pandora_delete_old_module_data ($dbh, 'tagente_datos_string', $ulimit_access_timestamp, $ulimit_timestamp); pandora_delete_old_module_data ($dbh, 'tagente_datos_string', $ulimit_access_timestamp, $ulimit_timestamp);
}
else {
log_message ('PURGE', 'string_purge is set to 0. Old string data will not be deleted.');
}
# Delete event data # Delete event data
if (!defined($conf->{'_event_purge'})){ if (!defined($conf->{'_event_purge'})){
$conf->{'_event_purge'}= 10; $conf->{'_event_purge'}= 10;
} }
if ($conf->{'_event_purge'} > 0) {
my $event_limit = time() - 86400 * $conf->{'_event_purge'}; my $event_limit = time() - 86400 * $conf->{'_event_purge'};
my $events_table = 'tevento'; my $events_table = 'tevento';
@ -204,20 +213,33 @@ sub pandora_purgedb ($$) {
usleep (10000); usleep (10000);
} }
log_message ('', "\n"); log_message ('', "\n");
}
else {
log_message ('PURGE', 'event_purge is set to 0. Old events will not be deleted.');
}
# Delete audit data # Delete audit data
$conf->{'_audit_purge'}= 7 if (!defined($conf->{'_audit_purge'})); $conf->{'_audit_purge'}= 7 if (!defined($conf->{'_audit_purge'}));
if ($conf->{'_audit_purge'} > 0) {
log_message ('PURGE', "Deleting old audit data (More than " . $conf->{'_audit_purge'} . " days)."); log_message ('PURGE', "Deleting old audit data (More than " . $conf->{'_audit_purge'} . " days).");
my $audit_limit = time() - 86400 * $conf->{'_audit_purge'}; my $audit_limit = time() - 86400 * $conf->{'_audit_purge'};
db_do($dbh, "DELETE FROM tsesion WHERE utimestamp < $audit_limit"); db_do($dbh, "DELETE FROM tsesion WHERE utimestamp < $audit_limit");
}
else {
log_message ('PURGE', 'audit_purge is set to 0. Old audit data will not be deleted.');
}
# Delete SNMP trap data # Delete SNMP trap data
$conf->{'_trap_purge'}= 7 if (!defined($conf->{'_trap_purge'})); $conf->{'_trap_purge'}= 7 if (!defined($conf->{'_trap_purge'}));
log_message ('PURGE', "Deleting old SNMP traps data (More than " . $conf->{'_trap_purge'} . " days)."); if ($conf->{'_trap_purge'} > 0) {
log_message ('PURGE', "Deleting old SNMP traps (More than " . $conf->{'_trap_purge'} . " days).");
my $trap_limit = strftime ("%Y-%m-%d %H:%M:%S", localtime(time() - 86400 * $conf->{'_trap_purge'})); my $trap_limit = strftime ("%Y-%m-%d %H:%M:%S", localtime(time() - 86400 * $conf->{'_trap_purge'}));
db_do($dbh, "DELETE FROM ttrap WHERE timestamp < '$trap_limit'"); db_do($dbh, "DELETE FROM ttrap WHERE timestamp < '$trap_limit'");
}
else {
log_message ('PURGE', 'trap_purge is set to 0. Old SNMP traps will not be deleted.');
}
# Delete policy queue data # Delete policy queue data
enterprise_hook("pandora_purge_policy_queue", [$dbh, $conf]); enterprise_hook("pandora_purge_policy_queue", [$dbh, $conf]);
@ -227,10 +249,14 @@ sub pandora_purgedb ($$) {
# Delete GIS data # Delete GIS data
$conf->{'_gis_purge'}= 15 if (!defined($conf->{'_gis_purge'})); $conf->{'_gis_purge'}= 15 if (!defined($conf->{'_gis_purge'}));
if ($conf->{'_gis_purge'} > 0) {
log_message ('PURGE', "Deleting old GIS data (More than " . $conf->{'_gis_purge'} . " days)."); log_message ('PURGE', "Deleting old GIS data (More than " . $conf->{'_gis_purge'} . " days).");
my $gis_limit = strftime ("%Y-%m-%d %H:%M:%S", localtime(time() - 86400 * $conf->{'_gis_purge'})); my $gis_limit = strftime ("%Y-%m-%d %H:%M:%S", localtime(time() - 86400 * $conf->{'_gis_purge'}));
db_do($dbh, "DELETE FROM tgis_data_history WHERE end_timestamp < '$gis_limit'"); db_do($dbh, "DELETE FROM tgis_data_history WHERE end_timestamp < '$gis_limit'");
}
else {
log_message ('PURGE', 'gis_purge is set to 0. Old GIS data will not be deleted.');
}
# Delete pending modules # Delete pending modules
log_message ('PURGE', "Deleting pending delete modules (data table).", ''); log_message ('PURGE', "Deleting pending delete modules (data table).", '');
@ -323,6 +349,7 @@ sub pandora_purgedb ($$) {
# Delete old netflow data # Delete old netflow data
if ($conf->{'_netflow_max_lifetime'} > 0) {
log_message ('PURGE', "Deleting old netflow data."); log_message ('PURGE', "Deleting old netflow data.");
if (! defined ($conf->{'_netflow_path'}) || ! -d $conf->{'_netflow_path'}) { if (! defined ($conf->{'_netflow_path'}) || ! -d $conf->{'_netflow_path'}) {
log_message ('!', "Netflow data directory does not exist, skipping."); log_message ('!', "Netflow data directory does not exist, skipping.");
@ -333,6 +360,10 @@ sub pandora_purgedb ($$) {
else { else {
`yes 2>/dev/null | $conf->{'_netflow_nfexpire'} -e "$conf->{'_netflow_path'}" -t $conf->{'_netflow_max_lifetime'}d`; `yes 2>/dev/null | $conf->{'_netflow_nfexpire'} -e "$conf->{'_netflow_path'}" -t $conf->{'_netflow_max_lifetime'}d`;
} }
}
else {
log_message ('PURGE', 'netflow_max_lifetime is set to 0. Old netflow data will not be deleted.');
}
@ -341,7 +372,8 @@ sub pandora_purgedb ($$) {
if (! defined ($conf->{'_log_dir'}) || ! -d $conf->{'_log_dir'}) { if (! defined ($conf->{'_log_dir'}) || ! -d $conf->{'_log_dir'}) {
log_message ('!', "Log data directory does not exist, skipping."); log_message ('!', "Log data directory does not exist, skipping.");
} }
elsif ($conf->{'_log_max_lifetime'} != 0) { elsif ($conf->{'_log_max_lifetime'} > 0) {
log_message ('PURGE', 'Deleting log data older than ' . $conf->{'_log_max_lifetime'} . ' days.');
# Calculate the limit date # Calculate the limit date
my ($sec,$min,$hour,$mday,$mon,$year) = localtime(time() - $conf->{'_log_max_lifetime'} * 86400); my ($sec,$min,$hour,$mday,$mon,$year) = localtime(time() - $conf->{'_log_max_lifetime'} * 86400);
@ -365,6 +397,9 @@ sub pandora_purgedb ($$) {
# Purge the log dir # Purge the log dir
pandora_purge_log_dir ($conf->{'_log_dir'}, $limits); pandora_purge_log_dir ($conf->{'_log_dir'}, $limits);
} }
else {
log_message ('PURGE', 'log_max_lifetime is set to 0. Old log data will not be deleted.');
}
} }
######################################################################## ########################################################################