Назад | Перейти на главную страницу

База данных fail2ban слишком велика (более 500 МБ). Как мне добиться разумного размера?

Недавно мои резервные копии начали сбоить, и я отследил проблему в файле /var/lib/fail2ban/fail2ban.sqlite3. Это более 500 МБ. Я не уверен, растет ли он с течением времени или это недавнее развитие.

Как мне добиться разумного размера и сохранить его? (Для этого скажем, менее 500 МБ.)

Eсть dbpurgeage параметр в fail2ban.conf, который сообщает, сколько дней данные хранить в базе данных. По умолчанию - один день (1d), поэтому попробуйте уменьшить его до пары часов:

dbpurgeage = 8h

Этот параметр сочетается с findtime: нет смысла иметь findtime дольше чем dbpurgeage.

редактировать: Глядя на свой fail2ban база данных, dbpurgeage настройка не работает. Поэтому единственное решение - удалить записи вручную. Например, чтобы удалить прошлогодние записи, выполните:

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

sqlite3 исполняемый файл обычно находится в одноименном пакете).

PS: Кажется, нет возможности выполнить VACUUM базы данных без sqlite выполнение копии базы данных в том же каталоге. Однако вы можете скопировать файл в другую файловую систему перед выполнением операции, а затем скопировать базу данных меньшего размера.