{"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\/es\/blog\/news\/predlozhenie-po-perevodu-sistemnyh-logov-lastlog-btmp-utmp-i-wtmp-na-ispolzovanie-sqlite","title":{"rendered":"Propuesta para la traducci\u00f3n de los registros del sistema lastlog, btmp, utmp y wtmp para utilizar SQLite","gt_translate_keys":[{"key":"rendered","format":"text"}]},"content":{"rendered":"<p>En la lista de distribuci\u00f3n linux-api se ha propuesto (RFC) discutir la sustituci\u00f3n de los obsoletos formatos binarios de los registros del sistema lastlog, btmp, utmp y wtmp por nuevas bibliotecas compartidas que utilicen SQLite como backend. Esta iniciativa tiene como objetivo resolver problemas acumulados, entre los cuales se encuentran el desbordamiento de contadores de tiempo de 32 bits en 2038, la falta de escalabilidad, el bajo rendimiento de las consultas y la falta de atomicidad en las escrituras.      <\/p>\n<p>Actualmente, se utilizan los siguientes archivos binarios de estructura fija para almacenar datos sobre sesiones e intentos de autenticaci\u00f3n en Linux:  <\/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>El formato de datos de los archivos fue desarrollado hace varias d\u00e9cadas y tiene una serie de limitaciones fundamentales:  <\/p>\n<ul>\n<li class=\"l\"> El campo &#171;tv_sec&#187; en la estructura &#171;utmpx&#187; y el campo &#171;ll_time&#187; en &#171;lastlog&#187; tienen el tipo &#171;int32_t&#187;, un valor de contador de tiempo que se desbordar\u00e1 el 19 de enero de 2038. Debido a los requisitos de compatibilidad ABI, incluso en sistemas de 64 bits, estos campos siguen siendo de 32 bits, por lo que el problema afectar\u00e1 a todas las instalaciones de Linux.\n<li class=\"l\"> El tama\u00f1o fijo de los registros no permite agregar nuevos campos (por ejemplo, identificador de contenedor, nombre de servicio, direcci\u00f3n IP) sin una sustituci\u00f3n completa del formato y la recompilaci\u00f3n de todas las utilidades.\n<li class=\"l\"> Las utilidades last, lastb, who y lastlog se ven obligadas a recorrer linealmente el contenido de los archivos. Con grandes tama\u00f1os de registros, sin el uso de \u00edndices que permitan filtrar registros de manera eficiente, la carga del sistema de entrada\/salida y los retrasos en la ejecuci\u00f3n de consultas se vuelven inaceptables.\n<li class=\"l\"> Escribir en un archivo binario no es una operaci\u00f3n at\u00f3mica. En caso de fallo, la escritura puede quedar parcialmente da\u00f1ada.\n<li class=\"l\"> Para evitar conflictos al escribir simult\u00e1neamente en los registros desde varios procesos (por ejemplo, sshd y login), se utilizan bloqueos flock, que no garantizan la atomicidad y pueden llevar a bloqueos mutuos.    <\/ul>\n<p>El autor del RFC propone abandonar por completo los formatos binarios en favor de bibliotecas compartidas especializadas que utilizan SQLite. Se crea una biblioteca separada para cada tipo de registro con una interfaz C uniforme: liblastlog2, libbtmp2, libutmp2 y libwtmp2. Todas las bibliotecas trabajan con bases de datos cuya estructura incluye marcas de tiempo de 64 bits (tipo INTEGER) e \u00edndices por usuario y tiempo. Existe la posibilidad de agregar nuevos campos sin romper la compatibilidad (a trav\u00e9s de ALTER TABLE).    <\/p>\n<p>Entre los argumentos a favor del uso de SQLite se menciona el uso del tipo INTEGER de 64 bits para almacenar el tiempo epoch, el uso de \u00edndices para reducir la entrada\/salida mediante acceso selectivo a los registros en lugar de escaneos completos, la capacidad de agregar nuevos campos sin modificar los registros existentes, el soporte para transacciones ACID, y el modo WAL (Write-Ahead Logging) para acceso concurrente sin bloqueos, adem\u00e1s de la confiabilidad comprobada de SQLite.      <\/p>\n<p>Para garantizar una transici\u00f3n fluida, se propone una estrategia de &#171;escritura dual&#187; (dual-write):  <\/p>\n<ul>\n<li class=\"l\"> Los programas que escriben en archivos binarios (login, sshd, sudo, cron, etc.) se modifican para que realicen simult\u00e1neamente la escritura tanto en el viejo archivo binario como en la nueva base de datos SQLite a trav\u00e9s de la biblioteca correspondiente.\n<li class=\"l\"> Se est\u00e1n desarrollando nuevas versiones de utilidades (last2, lastb2, who2, lastlog2) que leen datos de las bases SQLite utilizando \u00edndices para un funcionamiento r\u00e1pido. Las utilidades antiguas contin\u00faan funcionando con los archivos previos.\n<li class=\"l\"> En unos a\u00f1os, cuando la gran mayor\u00eda de los sistemas se actualicen, el soporte para la escritura en formatos antiguos puede desactivarse y las utilidades antiguas &#8212; ser declaradas obsoletas.  <\/ul>\n<p>Cuestiones planteadas para discusi\u00f3n adicional:  <\/p>\n<ul>\n<li class=\"l\"> La conveniencia de separarlas en bibliotecas individuales o combinarlas en una sola (por ejemplo, libsession2).\n<li class=\"l\"> La elecci\u00f3n de nombres para las bibliotecas y utilidades (mantener los nombres hist\u00f3ricos o pasar a nombres m\u00e1s gen\u00e9ricos).\n<li class=\"l\"> La ubicaci\u00f3n de los archivos de bases de datos (\/var\/lib\/ como para el estado de las aplicaciones o \/var\/log\/ como para los registros).\n<li class=\"l\"> El mecanismo de versionado de esquemas y migraci\u00f3n.\n<li class=\"l\"> Los par\u00e1metros de rendimiento de SQLite para diferentes escenarios (<a class=\"wpil_keyword_link\" href=\"https:\/\/prohoster.info\/es\/server\/\" title=\"servidores\" data-wpil-keyword-link=\"linked\">servidores<\/a>, sistemas integrados).\n<li class=\"l\"> Proporcionar un backend de fallback que almacene registros en un formato binario simplificado para sistemas donde SQLite puede ser redundante (por ejemplo, dispositivos integrados con limitaciones estrictas de memoria).  <\/ul>\n<p>Fuente: <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.2 - 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\/es\/blog\/news\/predlozhenie-po-perevodu-sistemnyh-logov-lastlog-btmp-utmp-i-wtmp-na-ispolzovanie-sqlite\" \/>\n\t<meta name=\"generator\" content=\"All in One SEO (AIOSEO) 5.0.2\" \/>\n\t\t<meta property=\"og:locale\" content=\"es_ES\" \/>\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\/es\/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\udd47Propuesta para la migraci\u00f3n de los registros del sistema lastlog, btmp, utmp y wtmp al uso de SQLite | ProHoster","description":"Se ha planteado en la lista de distribuci\u00f3n linux-api la propuesta (RFC) de reemplazar los formatos binarios obsoletos de los registros del sistema lastlog, btmp, utmp y wtmp por nuevas bibliotecas compartidas que utilicen SQLite.","canonical_url":"https:\/\/prohoster.info\/es\/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":"es_ES","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\/es\/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\/es\/wp-json\/wp\/v2\/posts\/164053","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/users\/8"}],"replies":[{"embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/comments?post=164053"}],"version-history":[{"count":1,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/164053\/revisions"}],"predecessor-version":[{"id":165640,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/posts\/164053\/revisions\/165640"}],"wp:attachment":[{"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/media?parent=164053"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/categories?post=164053"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/prohoster.info\/es\/wp-json\/wp\/v2\/tags?post=164053"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}