#!/usr/bin/env php > /var/log/audit_log_cleanup.log 2>&1 */ // Prevent web access if (php_sapi_name() !== 'cli') { http_response_code(403); exit('CLI access only'); } // Change to project root directory chdir(dirname(__DIR__)); // Include required files require_once 'config/config.php'; require_once 'helpers/Database.php'; require_once 'models/AuditLogModel.php'; // Log function function logMessage($message) { echo '[' . date('Y-m-d H:i:s') . '] ' . $message . "\n"; } $retentionDays = (int)($GLOBALS['config']['AUDIT_LOG_RETENTION_DAYS'] ?? 90); logMessage("Starting audit log cleanup (retention: {$retentionDays} days)"); try { $conn = Database::getConnection(); $auditLog = new AuditLogModel($conn); $deleted = $auditLog->deleteOldLogs($retentionDays); logMessage("Removed {$deleted} audit log row(s) older than {$retentionDays} days"); Database::close(); } catch (Exception $e) { logMessage('FATAL ERROR: ' . $e->getMessage()); exit(1); }