The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Предложение по переводу системных логов lastlog, btmp, utmp и wtmp на использование SQLite

13.03.2026 08:11 (MSK)

В списке рассылки linux-api выставлено на обсуждение предложение (RFC) заменить устаревшие бинарные форматы системных журналов lastlog, btmp, utmp и wtmp на новые разделяемые библиотеки, использующие SQLite в качестве бэкенда. Инициатива направлена на решение накопившихся проблем, среди которых переполнение 32-разрядных счётчиков времени в 2038 году, отсутствие расширяемости, низкая производительность запросов и отсутствие атомарности при записи.

В настоящее время для хранения данных о сеансах и попытках аутентификации в Linux используются следующие бинарные файлы, имеющие фиксированную структуру:

  • /var/log/lastlog - время последнего входа (структура "struct lastlog" с полем "ll_time" 32-разрядного типа time_t);
  • /var/log/btmp - неудачные попытки входа;
  • /var/run/utmp - текущие сеансы;
  • /var/log/wtmp - история входов и выходов.

Формат данных файлов был разработан несколько десятилетий назад и имеет ряд фундаментальных ограничений:

  • Поле "tv_sec" в структуре "utmpx" и поле "ll_time" в "lastlog" имеют тип "int32_t", значение счётчиков времени на основе которого переполнится 19 января 2038 года. Из-за требований ABI‑совместимости даже на 64-разрядных системах эти поля остаются 32-разрядными, поэтому проблема затронет все установки Linux.
  • Фиксированный размер записей не позволяет добавлять новые поля (например, идентификатор контейнера, имя сервиса, IP-адрес) без полной замены формата и перекомпиляции всех утилит.
  • Утилиты last, lastb, who и lastlog вынуждены линейно перебирать содержимое файлов. При большом размере журналов без использования индексов, позволяющих эффективно фильтровать записи, нагрузка на систему ввода/вывода и задержки при выполнении запросов становятся неприемлемыми.
  • Запись в бинарный файл не является атомарной операцией. При сбое запись может быть частично повреждена.
  • Для исключения конфликтов при одновременной записи в журтал несколькими процессами (например, sshd и login) используются flock-блокировки, которые не гарантируют атомарность и могут приводить к взаимным блокировкам.

Автор RFC предлагает полностью отказаться от бинарных форматов в пользу специализированных разделяемых библиотек, использующих SQLite. Для каждого типа журналов создаётся отдельная библиотека с единообразным C-интерфейсом: liblastlog2, libbtmp2, libutmp2 и libwtmp2. Все библиотеки работают с БД, схема которых включает 64-разрядные временные метки (тип INTEGER) и индексы по пользователю и времени. Имеется возможность добавления новых полей без нарушения совместимости (через ALTER TABLE).

Среди доводов в пользу использования SQLite упоминается использование 64-разрядного типа INTEGER для хранения эпохального времени, задействование индексов для снижения ввода/вывода за счёт выборочного обращения к записями вместо полного сканирования, возможность добавления новых полей без изменения существующих записей, поддержка ACID-транзакций, режим WAL (Write-Ahead Logging) для конкурентного доступа без блокировок, проверенная надёжность работы SQLite.

Для обеспечения плавного перехода предлагается стратегия "двойной записи" (dual-write):

  • Программы, которые пишут в бинарные файлы (login, sshd, sudo, cron и др.), модифицируются так, чтобы одновременно выполнять запись и в старый бинарный файл, и в новую SQLite-базу через соответствующую библиотеку.
  • Разрабатываются новые версии утилит (last2, lastb2, who2, lastlog2), которые читают данные из SQLite-баз, используя индексы для быстрой работы. Старые утилиты продолжают работать с прежними файлами.
  • Через несколько лет, когда подавляющее большинство систем обновятся, поддержка записи в старые форматы может быть отключена, а старые утилиты - объявлены устаревшими.

Вопросы, выставленные для дополнительного обсуждения:

  • Целесообразность разделения на отдельные библиотеки или объединения в одну (например, libsession2).
  • Выбор имён для библиотек и утилит (сохранить исторические названия или перейти к более общим).
  • Расположение файлов баз данных (/var/lib/ как для состояния приложений или /var/log/ как для логов).
  • Механизм версионирования схемы и миграции.
  • Параметры производительности SQLite для различных сценариев (серверы, встраиваемые системы).
  • Предоставление fallback-бэкенда, хранящего журналы в упрощённом бинарном формате, для систем, на которых SQLite может оказаться избыточным (например, встраиваемые устройства с жёсткими ограничениями по памяти).


  1. Главная ссылка к новости (https://github.com/bakshansky/...)
  2. OpenNews: Для избавления Glibc от проблемы 2038 года предложено прекратить использование utmp
  3. OpenNews: Уязвимость в SQLite, позволяющая удалённо атаковать Chrome через WebSQL
  4. OpenNews: Проект Redka развивает реализацию протокола и API Redis поверх SQLite
  5. OpenNews: Эксперимент с использованием SQLite в качестве контейнера для архивирования файлов
  6. OpenNews: Google использовал большую языковую модель для выявления уязвимости в SQLite
Автор новости: Аноним
Лицензия: CC BY 3.0
Короткая ссылка: https://opennet.ru/64981-wtmp
Ключевые слова: wtmp, log, sqlite
При перепечатке указание ссылки на opennet.ru обязательно


Обсуждение (84) Ajax | 1 уровень | Линейный | +/- | Раскрыть всё | RSS
  • 1.1, Аноним (1), 08:25, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Чем metakit4 не угодил?
     
     
  • 2.15, Аноним (15), 08:42, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Написана на C++ - https://ru.wikipedia.org/wiki/MetaKit
     
  • 2.18, Жироватт (ok), 08:44, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Недостаточно стильно@модно@молодёжно и обновлялась не "в прошлом месяце"
    Хотя я не удивлён был бы, если бы туда по решению платинового спонсора предложили запихнуть sql server 2026 localDB
     
     
  • 3.20, Аноним (15), 08:56, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну это уже перебор, хватит https://github.com/microsoft/FASTER
     
     
  • 4.32, Жироватт (ok), 09:15, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Почему перебор? Самый раз. Полноценный движок баз, который потом можно будет смигрировать на

    "
    Три файла БД – для логов царственных демонов в системдишных шатрах,
    Семь – для пользовательских профилей программ и гуртовщиков мыши,
    Девять – для всеъ, облечённых в сисопские права,
    Один движок запустит Владыка на облачном троне,
    В ядре по имени linux, где уже распростёрся мрак.

    Один ms sql server в системе покорит их, он соберет их,
    скуль сервер притянет их и в чёрную цепь скуёт их
    В ядре по имени linux, где уже распростёрся мрак.
    "

     
     
  • 5.88, Аноним (88), 11:46, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Но ведь можно как это любят оптимизровать sqlite инплейс заменить на Mysql, Postgres, MSSQL, Oracle наконец, чтобы было энтерпрайзненько.  
     
  • 3.21, Аноним (21), 08:56, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    - Для каждого типа журналов создаётся отдельная библиотека
    - задействование индексов
    - одновременно выполнять запись и в старый бинарный файл, и в новую SQLite-базу

    Странная система логирования. Мы точно логи пишем?

     
     
  • 4.33, Жироватт (ok), 09:16, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, для времени миграции с базы на базу - вполне.
    Далее старый способ фиксации логов отключается, когда новый уже достаточно отлажен
     
     
  • 5.44, Аноним (21), 09:46, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Уточню проблему, если кто не понял:

    - Для каждого типа журналов создаётся отдельная библиотека
    - задействование индексов

    Точно логи пишем?

     
  • 3.52, Аноним (52), 10:08, 13/03/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.2, User (??), 08:25, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Автор RFC предлагает полностью отказаться

    Так вроде ж и отказались уже - в пользу journald?

     
  • 1.3, Аноним (52), 08:28, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    "Запись в бинарный файл не является атомарной операцией. При сбое запись может быть частично повреждена."

    Так это и к journald относится, разве нет?

     
     
  • 2.16, Олег (??), 08:42, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Да не слушай их. Программисты деградируют походу. Если записывать не больше страницы за раз, то вполне себе атомарная. А дальше уже работает журнал ФС. Sqlite хорошая штука, но зачем тащить её сюда,  не понятно.
     
  • 2.46, Аноним (21), 09:54, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    > При сбое запись может быть частично повреждена

    Дак это и к скуляйту относится. Что они подразумевают под сбоем? Железо гикнулось? Система в панике? Приложение кривое? Первым двум скуляйт не поможет. Остаётся приложение. Если приложение глюкнуло - мы в логах ничего не увидим. Скуляйт намекает, что сервера логирование теперь нету, а записью занимается непосредственно само приложение.

     
     
  • 3.64, Аноним (64), 10:38, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, логированием занимается не приложение, а все так же система  / системный демон. Но пишет оно теперь не в конкретно-специфичный бинарный файл, а в гораздо более широко распространенном формате. Приложению (если только оно не занимается анализом тех самых специфичных бинарных файлов) что в лоб, что по лбу - оно от этой смены бэкэнда никак не зависит.

     
  • 2.80, Аноним (80), 11:38, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    GDBM как-то обеспечивает атомарность через reflink copying и создание двух файлов БД: старой и новой версии, которые меняются местами.
     

  • 1.6, iCat (ok), 08:31, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Кому-то очень хочется внедрить нечитаемую систему протоколирования из мира Windows в мир GNU/Linux ?
    А зачем?
    Системды мало?
     
     
  • 2.9, Аноним (9), 08:32, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +3 +/
    Когда свободу на хлеб, остаются и без свободы и без хлеба.          
     
  • 2.11, анон (?), 08:34, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +6 +/
    Она и сейчас нечитаемая.
     
  • 2.28, Аноним (52), 09:12, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    А это "год линукса на десктопе против серверного линукса" ака "функциональность против простоты"
    И то, и другое имеет право на жизнь...
     
  • 2.36, aname (ok), 09:23, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Раст в ведро протащили, почему бы и не протащить SQLite
     

  • 1.7, Аноним (9), 08:31, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +5 +/
    Хранение логов в тормозлайт худшая идея, какую можно придумать. Ещё это завязывает на стороннего разработчика, который неизвестно что может сделать и с продуктом и со своим форматом. Если они такие любители прокладок пусть пишут новые либы для нового бинарного собственного и если надо расширяемого формата. А не превращают всю систему в один единый тормозящий скуль.
     
     
  • 2.13, Фонтимос (?), 08:37, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Подтверждаю, линукс станет тормозом. Хотя по мне, пучть внедряют, быстрее все слиняют на ФриБиЭсДи.
     
     
  • 3.30, gz (?), 09:14, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    все ненадо, ато слиняют ведь и те внедрятели с чудесатыми предложениями сделать чтото во фряхе
     
  • 2.17, User (??), 08:43, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Ну, в доelastic'овскую пору - я вот вполне себе делал центральный rsyslog с хранением в mysql - вполне себе работало.
     
     
  • 3.29, Аноним (52), 09:13, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    mysql и sqlite не сравнимы по скорости
     
     
  • 4.41, User (??), 09:39, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Ну да - sqlite в таких сценариях прям сильно быстрее будет.
     
     
  • 5.72, Аноним (88), 11:24, 13/03/2026 Скрыто ботом-модератором     [к модератору]
  • +1 +/
     
     
  • 6.81, User (??), 11:41, 13/03/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 7.86, Аноним (88), 11:45, 13/03/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
     
  • 8.89, User (??), 11:58, 13/03/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     
  • 2.38, Аноним (38), 09:24, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > Хранение логов в тормозлайт

    По сравнению с чем SQLite тормозной?

     
     
  • 3.73, Аноним (88), 11:25, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Вот прям по сравнению совершенно со всем.
     
     
  • 4.87, Аноним (87), 11:45, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Отличная аргументация.

    Может, хотя бы попробуешь ссылки какие-то найти, бенчмарки?

     
  • 2.39, letsmac (ok), 09:36, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    1C в свое время такое уже пробовал. В итоге вернулись к бинарным журналам. Тормозило на больших файлах знатно.
     
     
  • 3.74, Аноним (88), 11:26, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Я даже не удивлён что они попробовали этот заведомо провальный варинт это фишка их компании.
     
  • 2.40, Аноним (38), 09:38, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    > это завязывает на стороннего разработчика, который неизвестно что может сделать и с продуктом

    Ничего он не может сделать после того, как конкретная версия опубликована.

    > Если они такие любители прокладок пусть пишут новые либы для нового бинарного собственного и если надо расширяемого формата

    Да вон уже понаписали велосапедов; список в новости. В пятый раз наступать на те же грабли изобретением пятого велосапеда, видимо, не хотят.

    > А не превращают всю систему в один единый тормозящий скуль

    Тем временем в новости:

    "проблем, среди которых [...] низкая производительность запросов"

    Но в пятом велосапеде обязательно получится быстро!

     
     
  • 3.75, Аноним (88), 11:28, 13/03/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.8, Аноним (8), 08:31, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    А в чём проблема писать условный protobuf? Быстро, дёшево, достаточно атомарно
     
     
  • 2.57, Сталин (?), 10:16, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Возможно тем, что там нет индексов и поиск o(n), а не o(log n)
     

  • 1.12, Аноним (12), 08:35, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    т.е. если все равно переписывать, то они предлагают переписать так, чтобы сразу отсечь кору дуба и embedded системы, вместо того чтобы решить проблему создать новую
     
  • 1.19, Duck Fi (?), 08:45, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –4 +/
    Идея неплохая, но мб пора задуматься и унифицировать не только это ?
    Почти каждый файл конфигурации и данных имеет свой формат.
    Например /etc/passwd,  мб что то по типу yaml применять.
    И обязательно сохранить текстовый формат, можно потерпеть скорость, потому что тут она не на что не влияет.
     
     
  • 2.22, User (??), 09:00, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +4 +/
    Да сделали бы сразу "реестр linux - можно поверх sqlite'а", что ли - чего стесняться-то?
     
     
  • 3.25, Аноним (21), 09:03, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > можно поверх sqlite'а

    sqlite'а обязательно в контейнере

     
     
  • 4.34, Жироватт (ok), 09:21, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Внутри особой виртуальной машины
     
  • 3.31, Аноним (31), 09:15, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Было бы неплохо, если одним методом/способом модно было управлять настройками всего софта, как на системном, так и на пользовательском уровне. Вроде были попытки /etc в xml/json записать. Но это надо от религии отказаться. Потому что как и во всякой религии наибольшее сопротивление любому (даже самому здравому изменению) будет от упоротых фундамендалистов.
    Хотите чтобы все было как 20 лет назад? В чем проблема - скачайте из архива линукс 20 летней давности и пользуйте.

    Проблема виндового реестра в бинарности и монолитности, что легко решаемо технически. Но В еще большей мере в отсутствии документации, и зоопарком подходов чего и зачем там хранить.  

     
     
  • 4.35, Duck Fi (?), 09:21, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Спасибо, а то я уже думал что меня не поняли.
     
     
  • 5.42, Аноним (31), 09:45, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это понимает любой, кому приходится часто лезть в потроха линуксовых систем. Ну а школота на то и школота - ей, как собачке, главное заявить о своем присутствии опИсав самый высокий столб/дерево/забор что они нашли в пределах своей видимости.
     
  • 4.43, User (??), 09:46, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    А не нужно уже. Проблема "в общем" решена дополнительными уровнями абстракции в виде terraform+(ansible|salt|черт-в-ступе) - _ты_ управляешь состоянием системы плюс-минус декларативно, описывая его да-да, вот этими вот yaml'ями плюс-минус в одном месте - а то, что "под капотом" там ошмётки потрохов с 70х еще годов... Ну вот у связистов еще с 40х наследие не разгребли до конца, а у энергетиков - так и вовсе девятнаха местами, и чО? Не переделывать же, право-слово.
     
     
  • 5.69, Аноним (69), 11:14, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Раз в 40 лет можно и переделать. С учётом накопившегося опыта, так сказать.
     
  • 4.60, Аноним (21), 10:25, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    фиксэд:

    > Вроде были попытки /etc в xml/json записать. Но это надо религию принять. Потому что как и во всякой религии наибольшее сопротивление любому существующему инструменту будет от упоротых религиозных. Хотите чтобы всё менялось каждую неделю? В чём проблема - делайте форк от форка каждую неделю.

     
     
  • 5.65, Аноним (64), 10:42, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Дык оно и меняется, каждую неделю, причем безо всяких форков. Нужно быть идиотом, чтобы требовать чтобы что-то развивалось/улучшалось, но при этом не менялось. То что не развивается - оно уже мертво и давно на свалке. А вот кому хочется чтобы все оставалось как есть - ради бога, делайте форк и держитесь за него крепко. Ибо апстрим (если он еще не сдох - см. выше) БУДЕТ меняться независимо от вашего желания.
     
  • 3.48, Аноним (52), 10:05, 13/03/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.23, Аноним (23), 09:01, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Короче, нельзя поменять то, нельзя поменять сё, потому что совместимость. Тогда давайте все на sqlite переведем, ведь он остается совместимым с тем что было до него.
     
     
  • 2.49, Аноним (21), 10:05, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > все на sqlite переведем

    Надо не забыть структуру полей лога тоже хранить в таблице скуляйт для переносимости и совместимости, и формат структуры тоже в таблице, и таблицу тоже в таблице.

     

  • 1.24, Аноним (21), 09:02, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Фиксированный размер записей не позволяет добавлять новые поля

    А текстовый формат всё позволял.

     
     
  • 2.37, Жироватт (ok), 09:24, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Это не стильно, не модно, нужно знать grep+awk и иметь квалификацию повыше, чем one-button-monkey.
     
     
  • 3.50, Аноним (21), 10:06, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Для чтения бинарников или скуляйта что надо знать? :)
     
  • 3.54, Аноним (54), 10:12, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +2 +/
    Короче, нужно по-дидовски и пердольно.
     
     
  • 4.62, Аноним (21), 10:31, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Пройдёт немного времени - и логи в скуляйте станут "по-дидовски и пердольно". А внуки будут топить за новое, например, логи в облачном блокчейте через торренты.
     
  • 4.68, Аноним (68), 10:57, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    нее, по миллениальски кавайно и лобно-томильно-дольно
     
  • 2.61, Соль земли2 (?), 10:26, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • –1 +/
    Индексировать для быстрого поиска по полям позволял?
     
     
  • 3.63, Аноним (21), 10:33, 13/03/2026 Скрыто ботом-модератором     [к модератору]
  • +/
     

  • 1.26, Аноним (23), 09:08, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Предоставление fallback-бэкенда, хранящего журналы в упрощённом бинарном формате, для систем, на которых SQLite может оказаться избыточным (например, встраиваемые устройства с жёсткими ограничениями по памяти).

    А там что с изначальными ограничениями будет? Если их нет, то почему тогда этот fallback и не использовать везде вместо sqlite?

     
  • 1.27, Аноним (21), 09:10, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > не позволяет добавлять новые поля (например, идентификатор контейнера, имя сервиса, IP-адрес)
    > liblastlog2, libbtmp2, libutmp2 и libwtmp2... возможность добавления новых полей ... (через ALTER TABLE)

    Надо так: liblastlog2containerid liblastlog2servicename liblastlog2ipaddress libbtmp2containerid libbtmp2servicename  libbtmp2ipaddress libutmp2containerid libutmp2servicename  libutmp2ipaddress libwtmp2containerid libwtmp2servicename libwtmp2ipaddress

     
  • 1.45, мяв (?), 09:51, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    хорошая идея, надеюсь линус прочтет меня на опеннет.ру
     
  • 1.47, Диды (ok), 10:04, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    >Для исключения конфликтов при одновременной записи в журтал несколькими процессами (например, sshd и login) ....

    Чёт не понятно, как тут sqlite поможет

     
     
  • 2.51, Аноним (52), 10:06, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Механизм блокировки
     
     
  • 3.56, Аноним (21), 10:15, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Этот механизм эксклюзивный только для скуляйта? Больше нигде нельзя использовать?
     
     
  • 4.58, Аноним (52), 10:18, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Нет, man flock
     
     
  • 5.79, Аноним (80), 11:36, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Звучит как шикарная возможность организовать DoS, если кто-то блокировку не отпустит.
     

  • 1.53, Аноним (21), 10:10, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    > Предоставление fallback-бэкенда, хранящего журналы в упрощённом бинарном формате, для систем, на которых SQLite может оказаться избыточным

    Получается, скуляйт более жрущий память и более тормозной, а не то, что расписали в новости.

     
  • 1.55, Аноним (55), 10:14, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +2 +/
    самый лучший формат в данном случае - это текстовый.
     
  • 1.59, Соль земли2 (?), 10:24, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –1 +/
    Уже же есть journald, зачем этот огород?
     
  • 1.66, Аноним (66), 10:51, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • –2 +/
    > lastlog, btmp, utmp и wtmp

    А оно вообще нужно? Первый раз о таких слышу.

    > специализированных разделяемых библиотек, использующих SQLite. Для каждого типа журналов создаётся отдельная библиотека с единообразным C-интерфейсом: liblastlog2, libbtmp2, libutmp2 и libwtmp2

    Логгинг системных событий должен делаться через интерфейсы ОС, а не сбоку, какими-то спец. либами.

     
  • 1.67, Ахз (?), 10:54, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    Текстовый формат это ущерб.
    Логи всегда структурированы, набор полей почти всегда предопределен. имхо очень здравая и полезная идея, когда к логам можно обратиться кверей, а не отправлять на стдин грепа тонну овна в поисках вхождения.
     
     
  • 2.76, Аноним (88), 11:32, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +1 +/
    Кто предопределяет набор полей? Министерство логов, отдел наименования полей?
     

  • 1.70, Аноним (70), 11:14, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +1 +/
    > Из-за требований ABI‑совместимости

    Ага, вот и шиза вскрылась - api  у них нонсенс а abi железобетоно нетрогать. Биполярочка

     
     
  • 2.77, Аноним (88), 11:34, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Так это внутреннее abi, которое по кругу используют все программы и имеют жесткие связи. Как только меняешь тебе сразу прилетает. А api пользуется тот кто тебя никогда не достанет и не узнает где ты живешь.  
     

  • 1.71, mumu (ok), 11:22, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Есть опасения насчет устойчивости к bad-секторам и т.п. проблемам, если файлы немного побились. SQL-ям от этого обычно очень плохо
     
     
  • 2.82, Аноним (88), 11:41, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    sqlite терял данные и потому что место на диске кончилось и просто так. Худшее решение для всего как electron.
     

  • 1.78, Аноним (78), 11:36, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    Текстовые логи не пробовали?
     
     
  • 2.83, Аноним (88), 11:42, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    Резиновые жесткие диски уже завезли или служебная информация в текстовом виде более красиво?
     
     
  • 3.85, Аноним (85), 11:44, 13/03/2026 [^] [^^] [^^^] [ответить]  
  • +/
    > - /var/log/lastlog - время последнего входа (структура "struct lastlog" с полем "ll_time" 32-разрядного типа time_t);
    > - /var/log/btmp - неудачные попытки входа;
    > - -var/run/utmp - текущие сеансы;
    > - /var/log/wtmp - история входов и выходов.

    Для чего из этого вам не хватает нынешних объёмов диска?

     

  • 1.84, Аноним (84), 11:43, 13/03/2026 [ответить] [﹢﹢﹢] [ · · · ]  
  • +/
    В принципе неплохой вариант - стандартизировать API с библиотеками. А как именно библиотеки будет хранить - это уже будет вторично (backend хоть на простых текстовых, хоть на бинарных, хоть в XML/JSON/etc.., хоть интегрируют в это journald)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Текст:



    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2026 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру