Hallo Ihr Lieben,
ich bin im schreiben von Code ein Neuling. Ich fange gerade erst an zu programmieren. Dazu hilft mir folgende Anleitung:
https://programmieren-starten.de/blog/python-lernen/
Parallel versuche ich folgenden UseCase zu programmieren:
Alle Einträge in der PostgreSQL Datenbank fail2ban die älter als 24h sind sollen gelöscht werden. Dies soll per PHP Code und Cron Job , alle 2 Minuten geprüft werden. Hierzu habe ich zwei PHP Code Dateien geschrieben. Der zweite Code (crontab_new.php) funktioniert nicht.
1. config_new.php
2. crontab_new.php
Die Tabelle hat folgende Spalten:
id, hostname, created, name, protocol, port und ip. Im Feld created steht folgender Inhalt: "2025-01-04 01:53:17.312851+01".
Der Code in der Datei crontab_new.php ist fehlerhaft. Was mache ich nur falsch. Ich hoffe ich nerve Euch nicht mit meiner Frage und der Bitte um Unterstützung?
Vorab herzlichen Dank für Eure Hilfe und verbleibe ...
Mit lieben Grüßen von Stefan Harbich
ich bin im schreiben von Code ein Neuling. Ich fange gerade erst an zu programmieren. Dazu hilft mir folgende Anleitung:
https://programmieren-starten.de/blog/python-lernen/
Parallel versuche ich folgenden UseCase zu programmieren:
Alle Einträge in der PostgreSQL Datenbank fail2ban die älter als 24h sind sollen gelöscht werden. Dies soll per PHP Code und Cron Job , alle 2 Minuten geprüft werden. Hierzu habe ich zwei PHP Code Dateien geschrieben. Der zweite Code (crontab_new.php) funktioniert nicht.
1. config_new.php
PHP-Code:
root@dsme01:~# cat /etc/fail2ban/config_new.php
#!/usr/bin/php
<?php
// database configuration, use only one central postgresql server
$dbserver="localhost";
$dbuser="fail2ban";
$dbpass="########";
$dbname="fail2ban";
$tablename="fail2ban";
// connect to postgresql database
try {
$link = new PDO("pgsql:host=$dbserver;dbname=$dbname", $dbuser, $dbpass);
$link->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch (PDOException $e) {
die('Could not connect: ' . $e->getMessage());
}
?>
PHP-Code:
root@dsme01:~# cat /etc/fail2ban/cron2ban_new.php
#!/usr/bin/php
<?php
require_once((dirname(__FILE__)) . "/config_new.php");
$curdate=date("Y-m-d H:i:s");
// query PostgreSQL
$query = "DELETE FROM fail2ban WHERE created < 24h = '$curdate'";
// $query = "DELETE FROM fail2ban WHERE DATE_SUB(CURRENT_TIMESTAMP(), INTERVAL 1440 MINUTE) > created";
$stmt = $link->prepare($query);
$stmt->execute();
if ($stmt->execute()) {
echo "IP delete in the DATABASE";
} else {
echo "Error: " . $stmt->errorInfo()[2];
}
exit;
?>
id, hostname, created, name, protocol, port und ip. Im Feld created steht folgender Inhalt: "2025-01-04 01:53:17.312851+01".
Der Code in der Datei crontab_new.php ist fehlerhaft. Was mache ich nur falsch. Ich hoffe ich nerve Euch nicht mit meiner Frage und der Bitte um Unterstützung?
Vorab herzlichen Dank für Eure Hilfe und verbleibe ...
Mit lieben Grüßen von Stefan Harbich
Kommentar