= ? ORDER BY seq LIMIT 1000,1', array($rows)); if (empty($limit)) { break; } 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 { break; } } dbDelete('syslog', 'seq >= ? AND timestamp < DATE_SUB(NOW(), INTERVAL ? DAY)', array($rows, $config['syslog_purge'])); } } if ($options['f'] === 'eventlog') { if (is_numeric($config['eventlog_purge'])) { if (dbDelete('eventlog', 'datetime < DATE_SUB(NOW(), INTERVAL ? DAY)', array($config['eventlog_purge']))) { echo 'Eventlog cleared for entries over '.$config['eventlog_purge']." days\n"; } } } 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"; } } } if ($options['f'] === 'perf_times') { if (is_numeric($config['perf_times_purge'])) { if (dbDelete('perf_times', 'start < UNIX_TIMESTAMP(DATE_SUB(NOW(),INTERVAL ? DAY))', array($config['perf_times_purge']))) { echo 'Performance poller times cleared for entries over '.$config['perf_times_purge']." days\n"; } } } if ($options['f'] === 'callback') { include_once 'includes/callback.php'; } if ($options['f'] === 'device_perf') { if (is_numeric($config['device_perf_purge'])) { if (dbDelete('device_perf', 'timestamp < DATE_SUB(NOW(),INTERVAL ? DAY)', array($config['device_perf_purge']))) { echo 'Device performance times cleared for entries over '.$config['device_perf_purge']." days\n"; } } } if ($options['f'] === 'notifications') { include_once 'includes/notifications.php'; } if ($options['f'] === 'purgeusers') { $purge = 0; if (is_numeric($config['radius']['users_purge']) && $config['auth_mechanism'] === 'radius') { $purge = $config['radius']['users_purge']; } if (is_numeric($config['active_directory']['users_purge']) && $config['auth_mechanism'] === 'active_directory') { $purge = $config['active_directory']['users_purge']; } if ($purge > 0) { foreach (dbFetchRows("SELECT DISTINCT(`user`) FROM `authlog` WHERE `datetime` >= DATE_SUB(NOW(), INTERVAL ? DAY)", array($purge)) as $user) { $users[] = $user['user']; } $del_users = '"'.implode('","',$users).'"'; if (dbDelete('users', "username NOT IN ($del_users)",array($del_users))) { echo "Removed users that haven't logged in for $purge days"; } } }