{"id":833,"date":"2021-10-22T11:45:57","date_gmt":"2021-10-22T11:45:57","guid":{"rendered":"https:\/\/wiki.graven-ict.nl\/wordpress\/?p=833"},"modified":"2021-10-22T11:46:00","modified_gmt":"2021-10-22T11:46:00","slug":"reduce-fail2ban-sqlite3-file","status":"publish","type":"post","link":"https:\/\/wiki.graven-ict.nl\/wordpress\/reduce-fail2ban-sqlite3-file\/","title":{"rendered":"Reduce fail2ban.sqlite3 file"},"content":{"rendered":"\n<p>op 1 van mijn systemen heb ik fail2ban draaien, deze maakt gebruik van een sqlite3 db, deze database kan na verloop van tijd een behoorlijk groeien. in mijn geval is de size al bijna 700MB.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code># ls -al \/var\/lib\/fail2ban\ntotal 700256\ndrwxr-xr-x  2 root root      4096 Oct 22 12:19 .\ndrwxr-xr-x 67 root root      4096 Oct  5 20:35 ..\n-rw-------  1 root root 717042688 Oct 22 12:19 fail2ban.sqlite3\n<\/code><\/pre>\n\n\n<p>Laten we eens kijken wat er allemaal in de database staat. om in de database te kunnen kijken moet je sqlite3 op je machine zetten\u00a0 gebruik hiervoor je package manager. Open vervolgens de database en kijk welke tabellen er allemaal zijn. Als je niet helemaal zeker bent van wat je doet maak gewoon een copy van je database file<\/p><div id=\"grave-1674909980\" class=\"grave-content grave-entity-placement\"><script async src=\"\/\/pagead2.googlesyndication.com\/pagead\/js\/adsbygoogle.js?client=ca-pub-1970734611769428\" crossorigin=\"anonymous\"><\/script><ins class=\"adsbygoogle\" style=\"display:inline-block;width:728px;height:90px;\" \ndata-ad-client=\"ca-pub-1970734611769428\" \ndata-ad-slot=\"1820224830\"><\/ins> \n<script> \n(adsbygoogle = window.adsbygoogle || []).push({}); \n<\/script>\n<\/div>\n\n\n<pre class=\"wp-block-code\"><code># sqlite3 \/var\/lib\/fail2ban\/fail2ban.sqlite3\nSQLite version 3.11.0 2016-02-15 17:29:24\nEnter \".help\" for usage hints.\nsqlite> .tables\nbans        fail2banDb  jails       logs      \n<\/code><\/pre>\n\n\n\n<p>er zijn 4 tables in bans zitten de meeste rijen. Als je eerst een row count doet en ook kijkt wat de oudste entry&#8217;s zijn krijg je een idee van wat er in de Database staat. Het is gewoon een sql database dus veel bekende sql commando&#8217; s werken hier ook.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sqlite> select count(*) from bans;\n1077475\nsqlite> \nsqlite> select DATETIME(timeofban, 'unixepoch')  from bans limit 10; \n2016-10-15 03:22:23\n2016-10-26 20:08:04\n2016-10-27 02:58:43\n2016-11-16 00:05:54\n2016-11-26 14:53:22\n2016-12-15 12:32:05\n2017-01-09 22:02:33\n2017-01-11 00:00:15\n2017-01-14 12:56:21\n2017-01-30 16:24:59\nsqlite>\n\n<\/code><\/pre>\n\n\n\n<p>in deze database staan dus 1077475 rijen als we naar de eerste datums kijken zien we dat er gegevens in staan uit 2016 das een beetje overdreven dus gaan we een groot deel van de rijen verwijderen ik haal alle data voor september 2021 weg.<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sqlite> DELETE FROM bans WHERE DATE(timeofban, 'unixepoch') &lt; '2021-08-31';\nsqlite> select count(*) from bans;\n44083\nsqlite> select DATETIME(timeofban, 'unixepoch')  from bans limit 10; \n2021-09-08 11:12:55\n2021-09-21 06:04:02\n2021-08-31 04:17:31\n2021-08-31 05:05:08\n2021-08-31 05:06:09\n2021-08-31 05:06:40\n2021-08-31 05:06:58\n2021-08-31 05:07:21\n2021-08-31 05:07:47\n2021-08-31 05:08:06\nsqlite> \n\n<\/code><\/pre>\n\n\n\n<p>zo dat ruimt lekker op. Helaas is de file nog de zeflde size om deze kleiner te maken moeten we nog vacuum gebruiken voor de zekeheid herstarten we fail2ban service nog een keer. <\/p>\n<p>\u00a0<\/p>\n\n\n\n<pre class=\"wp-block-code\"><code>sqlite> VACUUM;\nsqlite> \n\n# ls -alh \/var\/lib\/fail2ban\ntotal 26M\ndrwxr-xr-x  2 root root 4.0K Oct 22 13:37 .\ndrwxr-xr-x 67 root root 4.0K Oct  5 20:35 ..\n-rw-------  1 root root  26M Oct 22 13:37 fail2ban.sqlite3\n\n# systemctl restart fail2ban.service \n\n\n<\/code><\/pre>\n\n\n\n<p>dat scheelt behoorlijk wat ruimte. <\/p>\n\n\n","protected":false},"excerpt":{"rendered":"<p>op 1 van mijn systemen heb ik fail2ban draaien, deze maakt gebruik van een sqlite3 db, deze database kan na verloop van tijd een behoorlijk groeien. in mijn geval is de size al bijna 700MB. Laten we eens kijken wat er allemaal in de database staat. om in de database te kunnen kijken moet je ..<\/p>\n<div class=\"clear-fix\"><\/div>\n<p><a href=\"https:\/\/wiki.graven-ict.nl\/wordpress\/reduce-fail2ban-sqlite3-file\/\" title=\"Meer lezen...\">Lees meer<\/a><\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_jetpack_memberships_contains_paid_content":false,"footnotes":""},"categories":[4,2],"tags":[],"class_list":["post-833","post","type-post","status-publish","format-standard","hentry","category-algemeen","category-linux"],"jetpack_featured_media_url":"","jetpack_sharing_enabled":true,"_links":{"self":[{"href":"https:\/\/wiki.graven-ict.nl\/wordpress\/wp-json\/wp\/v2\/posts\/833","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/wiki.graven-ict.nl\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/wiki.graven-ict.nl\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/wiki.graven-ict.nl\/wordpress\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/wiki.graven-ict.nl\/wordpress\/wp-json\/wp\/v2\/comments?post=833"}],"version-history":[{"count":1,"href":"https:\/\/wiki.graven-ict.nl\/wordpress\/wp-json\/wp\/v2\/posts\/833\/revisions"}],"predecessor-version":[{"id":834,"href":"https:\/\/wiki.graven-ict.nl\/wordpress\/wp-json\/wp\/v2\/posts\/833\/revisions\/834"}],"wp:attachment":[{"href":"https:\/\/wiki.graven-ict.nl\/wordpress\/wp-json\/wp\/v2\/media?parent=833"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/wiki.graven-ict.nl\/wordpress\/wp-json\/wp\/v2\/categories?post=833"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/wiki.graven-ict.nl\/wordpress\/wp-json\/wp\/v2\/tags?post=833"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}