mirror of
				https://github.com/librenms/librenms.git
				synced 2024-10-07 16:52:45 +00:00 
			
		
		
		
	Added authlog purge + improved efficiency of clearing out large syslog tables
This commit is contained in:
		
							
								
								
									
										23
									
								
								daily.php
									
									
									
									
									
								
							
							
						
						
									
										23
									
								
								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";
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
}
 | 
			
		||||
 | 
			
		||||
?>
 | 
			
		||||
 
 | 
			
		||||
							
								
								
									
										1
									
								
								daily.sh
									
									
									
									
									
								
							
							
						
						
									
										1
									
								
								daily.sh
									
									
									
									
									
								
							@@ -7,3 +7,4 @@ fi
 | 
			
		||||
 | 
			
		||||
php daily.php -f syslog
 | 
			
		||||
php daily.php -f eventlog
 | 
			
		||||
php daily.php -f authlog
 | 
			
		||||
 
 | 
			
		||||
@@ -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
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user