Quelltext des aktuellen Standes
<?php
// Cron-Script: CVE-Cache aktualisieren
//
// Dieses Script sollte regelmaessig per Cron ausgefuehrt werden (z.B. alle 6 Stunden):
// 0 */6 * * * /usr/bin/php /pfad/zu/bin/cve-refresh.php >> /pfad/zu/storage/logs/cve-refresh.log 2>&1
require_once __DIR__ . '/../vendor/autoload.php';
require_once __DIR__ . '/../bootstrap.php';
use OpenNIT\Core\Database;
use OpenNIT\Content\CveManager;
$dotenv = Dotenv\Dotenv::createImmutable(dirname(__DIR__));
$dotenv->load();
$dbConfig = require __DIR__ . '/../config/database.php';
$db = new Database($dbConfig);
$manager = new CveManager($db);
// Cron-Lauf tracken
$runId = null;
try {
$runId = (int)$db->insert('cronjob_runs', [
'job_name' => 'cve_refresh',
'started_at' => date('Y-m-d H:i:s'),
'status' => 'running',
]);
} catch (\Throwable) {}
echo '[' . date('Y-m-d H:i:s') . '] Starte CVE-Cache-Aktualisierung…' . PHP_EOL;
try {
$count = $manager->refreshCache();
$msg = "CVE-Cache aktualisiert: {$count} Einträge verarbeitet.";
echo '[' . date('Y-m-d H:i:s') . '] ' . $msg . PHP_EOL;
if ($runId) {
$db->update('cronjob_runs', [
'finished_at' => date('Y-m-d H:i:s'),
'status' => 'success',
'message' => $msg,
'items_processed' => $count,
], 'id = ?', [$runId]);
}
exit(0);
} catch (\Throwable $e) {
$msg = 'Exception: ' . $e->getMessage();
echo '[' . date('Y-m-d H:i:s') . '] FEHLER: ' . $msg . PHP_EOL;
if ($runId) {
try {
$db->update('cronjob_runs', [
'finished_at' => date('Y-m-d H:i:s'),
'status' => 'error',
'message' => $msg,
], 'id = ?', [$runId]);
} catch (\Throwable) {}
}
exit(1);
}