Недавно мои резервные копии начали сбоить, и я отследил проблему в файле /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 выполнение копии базы данных в том же каталоге. Однако вы можете скопировать файл в другую файловую систему перед выполнением операции, а затем скопировать базу данных меньшего размера.