diff --git a/daily.php b/daily.php index ff8644a68..fa0055eef 100644 --- a/daily.php +++ b/daily.php @@ -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"; + } + } +} ?> diff --git a/daily.sh b/daily.sh index a85400d44..b74705666 100644 --- a/daily.sh +++ b/daily.sh @@ -7,3 +7,4 @@ fi php daily.php -f syslog php daily.php -f eventlog +php daily.php -f authlog diff --git a/includes/defaults.inc.php b/includes/defaults.inc.php index 170134d6c..4038326c3 100644 --- a/includes/defaults.inc.php +++ b/includes/defaults.inc.php @@ -572,6 +572,7 @@ $config['update'] = 1; # Purge syslog and eventlog $config['syslog_purge'] = 30; # Number in days of how long to keep syslog entries for. $config['eventlog_purge'] = 30; # Number in days of how long to keep eventlog entries for. +$config['authlog_purge'] = 30; # Number in days of how long to keep authlog entries for. # Date format for PHP date()s $config['dateformat']['long'] = "r"; # RFC2822 style