GNU/Linux >> Linux の 問題 >  >> Linux

fail2ban のデータベースが大きすぎます (500 MB 以上)。適切なサイズにするにはどうすればよいですか?

解決策 1:

dbpurgeage があります fail2ban.conf のパラメータ 、データベースに保持するデータの日数を示します。デフォルトは 1 日 (1d) です。 )、数時間に短縮してみてください:

dbpurgeage = 8h

この設定は findtime と連動しています :findtime は意味がありません dbpurgeage より長い .

編集 (2021) :以下の注意事項は、執筆時点のものです。ただし、最近は neingeist をチェックしてください 代わりに答えてください。

時代遅れのメモ :自分の fail2ban を見て データベース、dbpurgeage 設定が機能していないようです。したがって、唯一の解決策は、エントリを手動で削除することです。たとえば、昨年のエントリを削除するには、次のコマンドを実行します:

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

(sqlite3 実行可能ファイルは通常、同名のパッケージにあります)。

VACUUM を実行する方法がないようです sqlite なしのデータベースの 同じディレクトリでデータベースのコピーを実行します。ただし、操作を実行する前にファイルを別のファイルシステムにコピーして、小さいデータベースをコピーして戻すことはできます。

解決策 2:

0.11.x (パージを実行するコードを含む) に更新してから、巨大なデータベースを削除してから、fail2ban を再起動できます。データベースを再作成します。これは、ほとんどの人にとって欠点のない最も簡単な解決策です。

fail2ban 0.11.x には実際には古いエントリを削除するコードが含まれていますが (古いバージョンにはありませんでした!)、VACUUM は実行されません。 .したがって、別のオプションは、fail2ban が古いエントリをパージするのを待ち (1 時間ごとに発生)、手動で sqlite3 /var/lib/fail2ban/fail2ban.sqlite3 "VACUUM;" を実行することです。 . VACUUM なし データベース ファイルはそのサイズのままになります。


Linux
  1. OpenStackエラー–インデックスの列サイズが大きすぎます。最大列サイズは767バイトです[解決済み]

  2. 「デバイスまたはリソースビジー」を乗り越える方法は?

  3. cPanelでSSH経由でデータベースをインポートするにはどうすればよいですか?

  1. cPanelでSSH経由でデータベースをエクスポートするにはどうすればよいですか?

  2. Linux上のOracle Databaseに追加するスワップ領域の量

  3. Linuxでディレクトリサイズを取得する方法

  1. 複数のコンピューターに大規模なダウンロードを配布する方法は?

  2. SQLデータベースで大きなテーブルを見つける方法

  3. Fail2Ban - 私の ISP IP ダイナミックが禁止されるのを防ぐ方法は?