GNU/Linux >> Belajar Linux >  >> Linux

database fail2ban terlalu besar (lebih dari 500mb). Bagaimana cara mendapatkannya ke ukuran yang wajar?

Solusi 1:

Ada dbpurgeage parameter di fail2ban.conf , yang memberitahukan berapa hari data disimpan dalam database. Standarnya adalah satu hari (1d ), jadi coba kurangi menjadi beberapa jam:

dbpurgeage = 8h

Pengaturan ini digabungkan dengan findtime :tidak masuk akal untuk memiliki findtime lebih panjang dari dbpurgeage .

Edit (2021) :Catatan di bawah ini benar pada saat penulisan. Namun saat ini lihat neingeist jawab sebagai gantinya.

Catatan usang :Dengan melihat fail2ban saya sendiri basis data, dbpurgeage pengaturan sepertinya tidak berfungsi. Oleh karena itu satu-satunya solusi adalah menghapus entri secara manual. Misalnya, untuk menghapus entri tahun lalu jalankan:

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

(file sqlite3 dapat dieksekusi biasanya dalam paket homonim).

Sepertinya tidak ada cara untuk melakukan VACUUM database tanpasqlite melakukan salinan database di direktori yang sama. Namun Anda dapat menyalin file ke sistem file lain sebelum melakukan operasi dan kemudian menyalin kembali database yang lebih kecil.

Solusi 2:

Anda dapat mengupdate ke 0.11.x (yang berisi kode untuk melakukan pembersihan) dan kemudian menghapus database yang sangat besar diikuti dengan restart fail2ban. Ini akan membuat ulang database. Ini adalah solusi termudah tanpa kekurangan bagi kebanyakan orang.

Meskipun fail2ban 0.11.x sebenarnya berisi kode untuk membersihkan entri lama (versi lama tidak!), tidak ada VACUUM . Jadi opsi lainnya adalah menunggu fail2ban untuk membersihkan entri lama (terjadi setiap jam) dan melakukan sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "VACUUM;" manual . Tanpa VACUUM file database akan tetap pada ukurannya.


Linux
  1. OpenStack Error – Ukuran kolom indeks terlalu besar. Ukuran kolom maksimum adalah 767 byte [Terpecahkan]

  2. Bagaimana Cara Mendistribusikan Unduhan Besar ke Beberapa Komputer?

  3. Cara Menemukan Tabel Besar di Database SQL

  1. Bagaimana cara mengimpor database melalui SSH di cPanel?

  2. Bagaimana cara mengekspor database melalui SSH di cPanel?

  3. Dapatkan ukuran database di MySQL

  1. Cara mendapatkan ukuran direktori di Linux

  2. Bagaimana cara mendapatkan ukuran direktori sebenarnya (keluar dari du)?

  3. Bagaimana cara mendapatkan ukuran fisik file di Linux?