JSON smartctl: большой счётчик можно испортить при импорте
Фотография конкретного исполнения не приложена.
Машинный формат облегчает сбор SMART-данных, но не гарантирует точность в любом получателе. Если JSON-число автоматически превращается в floating point, большое целое может округлиться. Внешне импорт проходит успешно, а последующая разность счётчиков уже неверна.
Руководство smartctl отдельно описывает значения за пределами безопасного 53-битного диапазона JSON-потребителей. Дополнительные строковые поля сохраняют точное представление; для ещё более широких значений предусмотрен массив байтов. Модификатор verbose позволяет выдавать такие формы независимо от текущего размера значения.
Схема импорта должна явно выбирать нужное представление и тип хранения. Нельзя сначала округлить число, а затем надеяться восстановить исходное значение преобразованием в строку. Наличие поля также зависит от команды, протокола, версии и поддержки устройства. Отсутствующий элемент не равен нулевому измерению.
В приёмке используют подготовленные отчёты с числами по обе стороны безопасной границы. Сравнивают исходное целое после полного пути через парсер, базу и экспорт. Отдельно проверяют сохранение статуса команды и версии утилиты. Успешный JSON-разбор подтверждает синтаксис документа, но не точность метрик или полноту полученной диагностики.
Основание — Official upstream smartmontools RELEASE_7_5 raw manual sources; OS and build conditionals retained, разделы --json optional v/o modifiers; safe integer range. Сохранён текст публичной справочной публикации; конкретная реализация может поддерживать только часть возможностей. Использованы исходники руководств официального тега smartmontools RELEASE_7_5. В них сохранены условия платформы и сборки; наличие опции у установленного пакета и диска требует проверки. Конкретный накопитель, контроллер и измерения не исследовались; команды к устройствам и отправка уведомлений не выполнялись.