{"id":164053,"date":"2026-03-13T11:11:58","date_gmt":"2026-03-13T09:11:58","guid":{"rendered":"https:\/\/prohoster.info\/blog\/novosti-interneta\/predlozhenie-po-perevodu-sistemnyh-logov-lastlog-btmp-utmp-i-wtmp-na-ispolzovanie-sqlite"},"modified":"2026-03-13T11:11:58","modified_gmt":"2026-03-13T09:11:58","slug":"predlozhenie-po-perevodu-sistemnyh-logov-lastlog-btmp-utmp-i-wtmp-na-ispolzovanie-sqlite","status":"publish","type":"post","link":"https:\/\/prohoster.info\/nl\/blog\/news\/predlozhenie-po-perevodu-sistemnyh-logov-lastlog-btmp-utmp-i-wtmp-na-ispolzovanie-sqlite","title":{"rendered":"Voorstel om de systeemlogs lastlog, btmp, utmp en wtmp over te zetten naar SQLite","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>In de mailinglijst linux-api is er een voorstel (RFC) gepresenteerd om verouderde binaire formaten van systeemlogs zoals lastlog, btmp, utmp en wtmp te vervangen door nieuwe gedeelde bibliotheken die SQLite als backend gebruiken. Dit initiatief is gericht op het oplossen van opgestapelde problemen, waaronder de overflow van 32-bits tijdtellertjes in 2038, een gebrek aan uitbreidbaarheid, lage prestatie bij query's en het ontbreken van atomiciteit bij \u0437\u0430\u043f\u0438\u0441\u0438.      <\/p>\n<p>Momenteel worden voor het opslaan van gegevens over sessies en authenticatiepogingen in Linux de volgende binaire bestanden met een vaste structuur gebruikt:  <\/p>\n<ul>\n<li class=\"l\"> \/var\/log\/lastlog &#8212; \u0432\u0440\u0435\u043c\u044f \u043f\u043e\u0441\u043b\u0435\u0434\u043d\u0435\u0433\u043e \u0432\u0445\u043e\u0434\u0430 (\u0441\u0442\u0440\u0443\u043a\u0442\u0443\u0440\u0430 &#171;struct lastlog&#187; \u0441 \u043f\u043e\u043b\u0435\u043c &#171;ll_time&#187; 32-\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u043e\u0433\u043e \u0442\u0438\u043f\u0430 time_t);\n<li class=\"l\"> \/var\/log\/btmp &#8212; \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u044b\u0435 \u043f\u043e\u043f\u044b\u0442\u043a\u0438 \u0432\u0445\u043e\u0434\u0430;\n<li class=\"l\"> \/var\/run\/utmp &#8212; \u0442\u0435\u043a\u0443\u0449\u0438\u0435 \u0441\u0435\u0430\u043d\u0441\u044b;\n<li class=\"l\"> \/var\/log\/wtmp &#8212; \u0438\u0441\u0442\u043e\u0440\u0438\u044f \u0432\u0445\u043e\u0434\u043e\u0432 \u0438 \u0432\u044b\u0445\u043e\u0434\u043e\u0432.  <\/ul>\n<p>Het gegevensformaat van deze bestanden is enkele decennia geleden ontwikkeld en vertoont een aantal fundamentele beperkingen:  <\/p>\n<ul>\n<li class=\"l\"> Het veld &#171;tv_sec&#187; in de structuur &#171;utmpx&#187; en het veld &#171;ll_time&#187; in &#171;lastlog&#187; hebben het type &#171;int32_t&#187;, waarbij de tijdstelsels tellers zijn waarvoor een overflow zal optreden op 19 januari 2038. Vanwege de vereisten voor ABI-compatibiliteit blijven deze velden zelfs op 64-bits systemen 32-bits, waardoor dit probleem alle Linux-installaties zal raken.\n<li class=\"l\"> De vaste grootte van de records maakt het niet mogelijk om nieuwe velden toe te voegen (zoals container-ID, servicenaam, IP-adres) zonder het formaat volledig te vervangen en alle hulpprogramma's opnieuw te compileren.\n<li class=\"l\"> De hulpprogramma's last, lastb, who en lastlog zijn gedwongen om lineair door de bestanden te bladeren. Bij een grote grootte van logs, zonder het gebruik van indexen die het mogelijk maken om records effectief te filteren, wordt de druk op het invoer-\/uitvoersysteem en de latentie bij het uitvoeren van queries onaanvaardbaar.\n<li class=\"l\"> Het schrijven naar een binair bestand is geen atomische operatie. Bij een storing kan de opname gedeeltelijk beschadigd raken.\n<li class=\"l\"> Om conflicten te voorkomen bij gelijktijdig schrijven naar logs door meerdere processen (zoals sshd en login) worden flock-locks gebruikt, die geen atomiciteit garanderen en kunnen leiden tot deadlocks.    <\/ul>\n<p>De auteur van de RFC stelt voor om volledig af te stappen van binaire formaten ten gunste van gespecialiseerde gedeelde bibliotheken die SQLite gebruiken. Voor elk type logboeken wordt een aparte bibliotheek gecre\u00eberd met een uniforme C-interface: liblastlog2, libbtmp2, libutmp2 en libwtmp2. Alle bibliotheken werken met databases waarvan het schema 64-bits tijdstempels (type INTEGER) en indices op gebruiker en tijd bevat. Nieuwe velden kunnen worden toegevoegd zonder de compatibiliteit te verstoren (via ALTER TABLE).    <\/p>\n<p>Onder de argumenten voor het gebruik van SQLite wordt genoemd dat de 64-bits INTEGER-gegevens type gebruikt wordt voor het opslaan van epoch-tijd, dat indices worden gebruikt om I\/O te verminderen door selectieve toegang tot records in plaats van een volledig scan, dat nieuwe velden kunnen worden toegevoegd zonder bestaande records te wijzigen, dat ACID-transacties worden ondersteund, dat de WAL-modus (Write-Ahead Logging) wordt gebruikt voor concurrente toegang zonder blokkering, en de bewezen betrouwbaarheid van SQLite.      <\/p>\n<p>Om een soepele overgang te waarborgen, wordt de strategie &#171;dual-write&#187; voorgesteld:  <\/p>\n<ul>\n<li class=\"l\"> Programma's die naar binaire bestanden schrijven (login, sshd, sudo, cron, enz.), worden aangepast zodat ze tegelijkertijd naar zowel het oude binaire bestand als naar de nieuwe SQLite-database schrijven via de bijbehorende bibliotheek.\n<li class=\"l\"> Nieuwe versies van hulpprogramma's (last2, lastb2, who2, lastlog2) worden ontwikkeld die gegevens uit SQLite-databases lezen, gebruikmakend van indices voor snelle werking. Oude hulpprogramma's blijven werken met de eerdere bestanden.\n<li class=\"l\"> Over enkele jaren, wanneer de overgrote meerderheid van de systemen is bijgewerkt, kan de ondersteuning voor schrijven naar oude indelingen worden uitgeschakeld en kunnen oude hulpprogramma's als verouderd worden beschouwd.  <\/ul>\n<p>Vragen die ter verdere discussie worden gesteld:  <\/p>\n<ul>\n<li class=\"l\"> De haalbaarheid van het splitsen in aparte bibliotheken of het samenvoegen in \u00e9\u00e9n (bijvoorbeeld libsession2).\n<li class=\"l\"> De keuze van namen voor bibliotheken en hulpprogramma's (historische namen behouden of overstappen naar meer algemene).\n<li class=\"l\"> De locatie van databases ( \/var\/lib\/ zoals voor applicatietoestanden of \/var\/log\/ zoals voor logs).\n<li class=\"l\"> Mechanisme voor versiebeheer van het schema en migratie.\n<li class=\"l\"> Prestatieparameters van SQLite voor verschillende scenario's (<a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/nl\/server\/\" title=\"servers\" data-wpil-keyword-link=\"linked\">servers<\/a>, embedded systemen).\n<li class=\"l\"> Het aanbieden van een fallback-backend die logs opslaat in een vereenvoudigd binair formaat, voor systemen waarop SQLite overbodig kan zijn (bijvoorbeeld embedded apparaten met strikte geheugenbeperkingen).  <\/ul>\n<p>Bron: <a rel=\"nofollow\" href=\"https:\/\/www.opennet.ru\/opennews\/art.shtml?num=64981\">opennet.ru<\/a> <\/p>","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"excerpt":{"rendered":"<p>\u0412 \u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 linux-api \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 (RFC) \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432 lastlog, btmp, utmp \u0438 wtmp \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 SQLite \u0432 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 \u0431\u044d\u043a\u0435\u043d\u0434\u0430. \u0418\u043d\u0438\u0446\u0438\u0430\u0442\u0438\u0432\u0430 \u043d\u0430\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u043d\u0430 \u0440\u0435\u0448\u0435\u043d\u0438\u0435 \u043d\u0430\u043a\u043e\u043f\u0438\u0432\u0448\u0438\u0445\u0441\u044f \u043f\u0440\u043e\u0431\u043b\u0435\u043c, \u0441\u0440\u0435\u0434\u0438 \u043a\u043e\u0442\u043e\u0440\u044b\u0445 \u043f\u0435\u0440\u0435\u043f\u043e\u043b\u043d\u0435\u043d\u0438\u0435 32-\u0440\u0430\u0437\u0440\u044f\u0434\u043d\u044b\u0445 \u0441\u0447\u0451\u0442\u0447\u0438\u043a\u043e\u0432 \u0432\u0440\u0435\u043c\u0435\u043d\u0438 \u0432 2038 \u0433\u043e\u0434\u0443, \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0440\u0430\u0441\u0448\u0438\u0440\u044f\u0435\u043c\u043e\u0441\u0442\u0438, \u043d\u0438\u0437\u043a\u0430\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0441\u0442\u044c \u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432 \u0438 \u043e\u0442\u0441\u0443\u0442\u0441\u0442\u0432\u0438\u0435 \u0430\u0442\u043e\u043c\u0430\u0440\u043d\u043e\u0441\u0442\u0438 \u043f\u0440\u0438 \u0437\u0430\u043f\u0438\u0441\u0438. \u0412 [&hellip;]<\/p>\n","protected":false,"gt_translate_keys":[{"key":"rendered","format":"html"}]},"author":8,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[702],"tags":[],"class_list":["post-164053","post","type-post","status-publish","format-standard","hentry","category-news"],"aioseo_notices":[],"aioseo_head":"\n\t\t<!-- All in One SEO 5.0.3 - aioseo.com -->\n\t<meta name=\"description\" content=\"\u0412 \u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 linux-api \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 (RFC) \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432 lastlog, btmp, utmp \u0438 wtmp \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 SQLite \u0432.\" \/>\n\t<meta name=\"robots\" content=\"max-image-preview:large\" \/>\n\t<meta name=\"author\" content=\"Erik Peterson\"\/>\n\t<link rel=\"canonical\" href=\"https:\/\/prohoster.info\/nl\/blog\/news\/predlozhenie-po-perevodu-sistemnyh-logov-lastlog-btmp-utmp-i-wtmp-na-ispolzovanie-sqlite\" \/>\n\t\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.3\" \/>\n\t\t<meta property=\"og:locale\" content=\"nl_NL\" \/>\n\t\t<meta property=\"og:site_name\" content=\"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b\" \/>\n\t\t<meta property=\"og:type\" content=\"article\" \/>\n\t\t<meta property=\"og:title\" content=\"\ud83e\udd47\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043b\u043e\u0433\u043e\u0432 lastlog, btmp, utmp \u0438 wtmp \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 SQLite | ProHoster\" \/>\n\t\t<meta property=\"og:description\" content=\"\u0412 \u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 linux-api \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 (RFC) \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432 lastlog, btmp, utmp \u0438 wtmp \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 SQLite \u0432.\" \/>\n\t\t<meta property=\"og:url\" content=\"https:\/\/prohoster.info\/nl\/blog\/news\/predlozhenie-po-perevodu-sistemnyh-logov-lastlog-btmp-utmp-i-wtmp-na-ispolzovanie-sqlite\" \/>\n\t\t<meta property=\"og:image\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:secure_url\" content=\"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg\" \/>\n\t\t<meta property=\"og:image:width\" content=\"350\" \/>\n\t\t<meta property=\"og:image:height\" content=\"350\" \/>\n\t\t<meta property=\"article:published_time\" content=\"2026-03-13T09:11:58+00:00\" \/>\n\t\t<meta property=\"article:modified_time\" content=\"2026-03-13T09:11:58+00:00\" \/>\n\t\t<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<meta property=\"article:author\" content=\"https:\/\/www.facebook.com\/prohoster\" \/>\n\t\t<!-- All in One SEO -->\n\n","aioseo_head_json":{"title":"\ud83e\udd47Voorstel om de systeemlogs lastlog, btmp, utmp en wtmp over te zetten naar het gebruik van SQLite | ProHoster","description":"In de mailinglijst linux-api is een voorstel (RFC) ter discussie gesteld om de verouderde binaire formaten van systeemlogs lastlog, btmp, utmp en wtmp te vervangen door nieuwe gedeelde bibliotheken die gebruikmaken van SQLite.","canonical_url":"https:\/\/prohoster.info\/nl\/blog\/news\/predlozhenie-po-perevodu-sistemnyh-logov-lastlog-btmp-utmp-i-wtmp-na-ispolzovanie-sqlite","robots":"max-image-preview:large","keywords":"","webmasterTools":{"miscellaneous":""},"schema":null,"og:locale":"nl_NL","og:site_name":"ProHoster | \u041a\u0443\u043f\u0438\u0442\u044c \u043d\u0430\u0434\u0435\u0436\u043d\u044b\u0439 \u0445\u043e\u0441\u0442\u0438\u043d\u0433 \u0434\u043b\u044f \u0441\u0430\u0439\u0442\u043e\u0432 \u0441 \u0437\u0430\u0449\u0438\u0442\u043e\u0439 \u043e\u0442 DDoS, VPS VDS \u0441\u0435\u0440\u0432\u0435\u0440\u044b","og:type":"article","og:title":"\ud83e\udd47\u041f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u043f\u043e \u043f\u0435\u0440\u0435\u0432\u043e\u0434\u0443 \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u043b\u043e\u0433\u043e\u0432 lastlog, btmp, utmp \u0438 wtmp \u043d\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435 SQLite | ProHoster","og:description":"\u0412 \u0441\u043f\u0438\u0441\u043a\u0435 \u0440\u0430\u0441\u0441\u044b\u043b\u043a\u0438 linux-api \u0432\u044b\u0441\u0442\u0430\u0432\u043b\u0435\u043d\u043e \u043d\u0430 \u043e\u0431\u0441\u0443\u0436\u0434\u0435\u043d\u0438\u0435 \u043f\u0440\u0435\u0434\u043b\u043e\u0436\u0435\u043d\u0438\u0435 (RFC) \u0437\u0430\u043c\u0435\u043d\u0438\u0442\u044c \u0443\u0441\u0442\u0430\u0440\u0435\u0432\u0448\u0438\u0435 \u0431\u0438\u043d\u0430\u0440\u043d\u044b\u0435 \u0444\u043e\u0440\u043c\u0430\u0442\u044b \u0441\u0438\u0441\u0442\u0435\u043c\u043d\u044b\u0445 \u0436\u0443\u0440\u043d\u0430\u043b\u043e\u0432 lastlog, btmp, utmp \u0438 wtmp \u043d\u0430 \u043d\u043e\u0432\u044b\u0435 \u0440\u0430\u0437\u0434\u0435\u043b\u044f\u0435\u043c\u044b\u0435 \u0431\u0438\u0431\u043b\u0438\u043e\u0442\u0435\u043a\u0438, \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u044e\u0449\u0438\u0435 SQLite \u0432.","og:url":"https:\/\/prohoster.info\/nl\/blog\/news\/predlozhenie-po-perevodu-sistemnyh-logov-lastlog-btmp-utmp-i-wtmp-na-ispolzovanie-sqlite","og:image":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:secure_url":"https:\/\/prohoster.info\/wp-content\/uploads\/2021\/11\/logo-350.jpg","og:image:width":350,"og:image:height":350,"article:published_time":"2026-03-13T09:11:58+00:00","article:modified_time":"2026-03-13T09:11:58+00:00","article:publisher":"https:\/\/www.facebook.com\/prohoster","article:author":"https:\/\/www.facebook.com\/prohoster"},"aioseo_meta_data":[],"gt_translate_keys":[{"key":"link","format":"url"}],"_links":{"self":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/164053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/comments?post=164053"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/164053\/revisions"}],"predecessor-version":[{"id":165640,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/posts\/164053\/revisions\/165640"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/media?parent=164053"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/categories?post=164053"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/nl\/wp-json\/wp\/v2\/tags?post=164053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}