Инвентаризация накопителей в домашней лаборатории: больше не теряю диски
Привет, l.o.r.
Решил поделиться тем, как за пару вечеров превратил разрозненные smartctl-логи в таблицу, которую приятно смотреть и которую невозможно не обновлять.
Итог — HTML-отчёт на 30 столбцов, но главное — визуальная грамматика: цвет = смысл, глаз цепляется сразу, а не после пятой перечитки цифр.
Зачем вообще
- В корпусе 5 дисков, в ящике ещё 4, на столе 3 флешки.
- У каждого своя история: кто-то покупался «на время», кто-то вытащен из NAS, кто-то «подарок» с рук.
- Бэкапы делаются, но куда — всегда забываю.
- SMART-атрибуты сыпятся в
journalctl, а анализировать лень.
Хотелось «одного файла», который:
- Открывается без софта (браузер everywhere).
- Показывает ресурс (TBW, hours, health).
- Не даёт спутать диск 2024 года с диском 2008-го.
- Можно распечатать и повесить над столом — цвета не сливаются.
Что собираем
Стандартный набор smartctl -A /dev/sdX + idctl -i для NVMe, плюс руками:
- дата покупки, продавец, цена, порт подключения, заметки;
- зашифрован ли раздел, SMR/CMR, TLC/QLC, RPM, буфер.
Цветовая логика (коротко)
-
Вендор — фирменный цвет, но затемнённый на 20 %.
Samsung =#1428a0, Kingston =#00796b, WD =#5e35b1…
Никаких «красных» или «зелёных» вендоров — эти цвета заняты. -
Технологичность — градиент от бирюзы к тёмно-серому.
PCIe 4.0 =tech-l0, SATA II =tech-l6, Floppy =tech-l7.
Применяется к году, интерфейсу, прошивке, объёму буфера. -
Состояние — единственная «оценочная» шкала: зелёный → красный, 9 ступеней.
Health 97 % =health-1, TBW 39 % =health-5, 17k hours =health-8.
Для флешек 64–128 ГБ берём процентиль по всем накопителям: они получаются светло-зелёными, а не «красными из-за маленького TBW». -
Нейтральное — каждый столбец свой оттенок серого/циана, не пересекающийся с основными шкалами.
Цена =#455a64, примечания =#161b22+ голубой текст, «n/a» = фон страницы и серый текст.
Контраст проверял автоматически (библиотека wcag-contrast), минимум 4.5:1 на фоне #0d1117.
Кусок CSS
.vendor-samsung { background:#1428a0; color:#fff; }
.tech-l0 { background:#00bcd4; color:#000; } /* новейшее */
.health-0 { background:#4caf50; color:#000; } /* отлично */
.price { background:#455a64; color:#fff; }
Добавляем класс ячейке — и всё, цвет больше не обсуждается.
Как обновляю
- Раз в месяц втыкаю все накопители по-очереди (внешние и «шкафные» тоже).
- Для каждого делаю два ctrl-c/ctrl-v:
sudo smartctl -A /dev/sdX→ блокнот;sudo smartctl -i /dev/sdX→ тот же блокнот, ниже.
NVMe-дискам добавляюnvme smart-log /dev/nvme0n1– он же второй блок.
- Открываю чат-бота и кидаю ему весь этот лог.
Промпт короткий:
«Сделай строку HTML-таблицы по шаблону:
<tr>
<td class="vendor-***">Name</td>
…
<td class="health-N">97</td>
…
</tr>
Данные ниже, классы определи сам».
Бот выдаёт готовую строку с правильными классами (цвета я ему заранее описал).
4. Копирую строку в disks.html – вставляю поверх старой.
5. Если купил новый диск, добавляю ещё одну строку тем же способом.
6. Сохраняю, закрываю редактор. Готово.
Всё занимает 15–20 минут: воткнул, скопировал, получил строку, вставил.
Если коротко: цвет = семантика, HTML = универсальный формат, автоматизация = не забудешь.
Теперь диски не теряются, а я перестал покупать «лишний, потому что не помню какой свободен».
Спрашивайте, критикуйте, делитесь своими способами инвентаризации.