Added authlog purge + improved efficiency of clearing out large syslog tables

This commit is contained in:
laf
2014-10-02 01:37:43 +01:00
parent 10e24653be
commit 8e00599d2a
3 changed files with 23 additions and 2 deletions

View File

@@ -16,9 +16,21 @@ if ( $options['f'] === 'update') { echo $config['update']; }
if ( $options['f'] === 'syslog') {
if ( is_numeric($config['syslog_purge'])) {
if ( dbDelete('syslog', "timestamp < DATE_SUB(NOW(), INTERVAL ? DAY)", array($config['syslog_purge'])) ) {
echo 'Syslog cleared for entries over ' . $config['syslog_purge'] . " days\n";
$rows = dbFetchRow("SELECT MIN(seq) FROM syslog");
$loop = 1;
while($loop == 1) {
$limit = dbFetchRow("SELECT seq FROM syslog WHERE seq >= ? ORDER BY seq LIMIT 1000,1", array($rows));
if(empty($limit)) {
$loop = 0;
}
if ( dbDelete('syslog', "seq >= ? AND seq < ? AND timestamp < DATE_SUB(NOW(), INTERVAL ? DAY)", array($rows,$limit,$config['syslog_purge'])) > 0) {
$rows = $limit;
echo 'Syslog cleared for entries over ' . $config['syslog_purge'] . " days 1000 limit\n";
} else {
$loop = 0;
}
}
dbDelete('syslog', "seq >= ? AND timestamp < DATE_SUB(NOW(), INTERVAL ? DAY)", array($rows,$config['syslog_purge']));
}
}
if ( $options['f'] === 'eventlog') {
@@ -28,5 +40,12 @@ if ( $options['f'] === 'eventlog') {
}
}
}
if ( $options['f'] === 'authlog') {
if ( is_numeric($config['authlog_purge'])) {
if ( dbDelete('authlog', "datetime < DATE_SUB(NOW(), INTERVAL ? DAY)", array($config['authlog_purge'])) ) {
echo 'Authlog cleared for entries over ' . $config['authlog_purge'] . " days\n";
}
}
}
?>