GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Die Datenbank von fail2ban ist zu groß (über 500 MB). Wie bekomme ich es auf eine vernünftige Größe?

Lösung 1:

Es gibt einen dbpurgeage Parameter in fail2ban.conf , der angibt, wie viele Tage Daten in der Datenbank aufbewahrt werden sollen. Der Standardwert ist ein Tag (1d ), versuchen Sie also, es auf ein paar Stunden zu reduzieren:

dbpurgeage = 8h

Diese Einstellung ist mit findtime gekoppelt :Es macht keinen Sinn, einen findtime zu haben länger als dbpurgeage .

Bearbeiten (2021) :Der folgende Hinweis war zum Zeitpunkt des Schreibens wahr. Heutzutage schauen Sie sich jedoch neingeist an stattdessen antworten.

Veralteter Hinweis :Durch einen Blick auf mein eigenes fail2ban Datenbank, die dbpurgeage Einstellung scheint nicht zu funktionieren. Daher ist die einzige Lösung, die Einträge manuell zu löschen. Um beispielsweise die Einträge des letzten Jahres zu löschen, führen Sie Folgendes aus:

sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 \
  "DELETE FROM bans WHERE DATE(timeofban, 'unixepoch') < '2020-01-01'; VACUUM;"

(die sqlite3 ausführbare Datei befindet sich normalerweise im gleichnamigen Paket).

Es scheint keine Möglichkeit zu geben, VACUUM auszuführen der Datenbank ohnesqlite Durchführen einer Kopie der Datenbank im selben Verzeichnis. Sie können die Datei jedoch vor dem Ausführen der Operation in ein anderes Dateisystem kopieren und dann die kleinere Datenbank zurückkopieren.

Lösung 2:

Sie können auf 0.11.x aktualisieren (das den Code zum Bereinigen enthält) und dann die riesige Datenbank löschen, gefolgt von einem Neustart von fail2ban. Die Datenbank wird neu erstellt. Dies ist die einfachste Lösung ohne Nachteile für die meisten Menschen.

Während fail2ban 0.11.x tatsächlich Code enthält, um alte Einträge zu löschen (die ältere Version tat dies nicht!), enthält es keinen VACUUM . Eine andere Möglichkeit ist also, auf fail2ban zu warten, um die alten Einträge zu löschen (passiert jede Stunde) und einen manuellen sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "VACUUM;" durchzuführen . Ohne die VACUUM die Datenbankdatei behält ihre Größe.


Linux
  1. So teilen Sie ein großes „tar“-Archiv in mehrere Dateien bestimmter Größe auf

  2. OpenStack-Fehler – Indexspaltengröße zu groß. Die maximale Spaltengröße beträgt 767 Bytes [Gelöst]

  3. Wie kann man „Gerät oder Ressource ausgelastet“ überwinden?

  4. Wie verteilt man einen großen Download auf mehrere Computer?

  5. So finden Sie große Tabellen in der SQL-Datenbank

So erhalten Sie die Größe eines Verzeichnisses in Linux

So erhalten Sie die Größe eines Verzeichnisses in Linux

So erhalten Sie eine Liste der MySQL-Benutzerkonten unter Linux

So erhalten Sie die Größe von tar.gz in (MB) Datei in Python

Wie bekomme ich die Datei-/Ordnergröße mit SSH unter Linux?

Wie erhalte ich die tatsächliche Verzeichnisgröße (aus du)?