* @copyright (C) Adam Armstrong * */ // Minimum allowed age for delete syslog entries times is 24h $cutoff = age_to_unixtime($config['housekeeping']['eventlog']['age'], age_to_seconds('24h')); if ($cutoff) { $where = "`timestamp` < FROM_UNIXTIME($cutoff)"; $count = dbFetchCell("SELECT COUNT(*) FROM `eventlog` WHERE $where"); if ($count) { if ($prompt) { $answer = print_prompt("$count eventlog entries older than " . format_unixtime($cutoff) . " will be deleted"); } if ($answer) { $rows = dbDelete('eventlog', $where); if ($rows === FALSE) { // Use LIMIT with big tables print_debug("Event log table is too big, using LIMIT to delete entries"); $rows = 0; $i = 1000; while ($i && $rows < $count) { $iter = dbDelete('eventlog', $where . ' LIMIT 1000000'); if ($iter === FALSE) { break; } $rows += $iter; $i--; } } print_debug("Event log housekeeping: deleted $rows entries"); logfile("housekeeping.log", "Event log: deleted $rows entries older than " . format_unixtime($cutoff)); } } elseif ($prompt) { print_message("No event log entries found older than " . format_unixtime($cutoff)); } } else { print_message("Event log housekeeping is disabled in configuration or incorrectly configured to less than 24h."); } // EOF