Hcl-get usage

Материал из ALT Linux Wiki

Описание

Эта статья написана Сергеем Котляровым и её первый оригинал находится на форуме ALT Linux

hcl-get клиент для базы данных проб оборудования, который позволяет как загрузку своих данных на сервер, так и получение данных от сервера (как данных об оборудовании, так и данных, загруженных самими пользователями - комментариев к их данным об оборудовании/софте).

Использование hcl-get

"Заливка" пробы на сервер

Предположим, что созрело решение поделиться своими данными об оборудовании/системе с другими пользователями системы. Для этого надо дать команду

hcl-get -r

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

  • либо об успешном добавлении данных и выдаст номер, который присвоен сервером пробе оборудования, а клиент сохранит архив в домашнюю директорию пользователя ~/.hcl-get
  • либо об ошибке.

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

Рекомендуемая к использованию минимальная версия hcl-get - 0.3.99.5, пакеты для которой можно взять на форуме https://forum.altlinux.org/index.php?topic=36472.msg280549#msg280549 (должно работать на системах, базирующихся на бранче p5.1 и старше, также возможна работа на более старых бранчах, но должно быть обеспечено наличие в системе пакета system-report версии не ниже 0.0.6). Владельцам p8/сизифа следить за ошибкой altbug #32222.

Получение информации о пробе

После того, как данные добавлены на сервер и им присвоен номер, можно обратиться за содержимым этих данных командой

hcl-get -r номер

где номер - числовой код присвоенный пробе в хранилище. Может случиться так, что отправляемых данных будет много, а часть архивов может быть переименована произвольным образом и их названия (hcl-get сохраняет успешно отправленные данные в архив ~/.hcl-get/номер.tar.bz2) не будут соответствовать внутренней нумерации сервера. В этом случае можно проверить, имеются ли данные некоторого архива в хранилище (и у них есть номер) либо нет. Это можно сделать командой

hcl-get -r имя_архива.tar.bz2

если файл располагается в домашней директории ~/.hcl-get или

hcl-get -r /полный/путь/архив.tar.bz2

если файл располагается вне пределов домашней директории.

Работа с комментариями

Теперь, когда проба оборудования успешно загружена на сервер, хотелось бы написать несколько строк о работоспособности имеющегося оборудования. Другими словами, мы хотим прокомментировать сухой язык статистики, которым составлены отчеты о нашем оборудовании (то, что можно увидеть в выводе команды hcl-get -r номер). Для этого нужно сделать два действия:

1. Собственно, написать либо мысленно набросать сам комментарий на тему отправленных ранее данных. Здесь есть три условия его составления (использование любого текстового редактора на выбор и применяемого форматирования не являются частью условий):

  • длина комментария ограничена тремя килобайтами (на мой взгляд, этого вполне достаточно, однако, этот лимит может быть пересмотрен)
  • кодировка комментария может быть либо utf-8 либо ascii и это должен быть обычный txt файл (но не .doc и т.п.)
  • для удобства манипулирования комментарием, лучше всего его сохранить рядом с архивом пробы в файл ~/.hcl-get/номер.txt, где номер соответствует номеру пробы, для которой составляется комментарий
  • если комментарий не планируется слишком большим и умещается на одной строке, то файл с комментарием можно не создавать, а перейти сразу ко второму действию

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

 hcl-get -c

Можно несколько конкретизировать запрос, например, указав номер пробы

 hcl-get -c номер

или файл комментария, располагающийся в домашней директории ~/.hcl-get и имеющий имя с расширением

 hcl-get -c номер.txt

или

 hcl-get -c файл_с_расширением

если файл комментария располагается в домашней директории ~/.hcl-get и называется файл_с_расширением (в этом случае и в случае, описанном ниже, будет выдан список имеющихся в домашней директории ~/.hcl-get проб) и запрошено на выбор:

  • номер строки, содержащую информацию о нужном файле пробы
  • имя архива с расширением, если файлом пробы является архив из домашней директории ~/.hcl-get
  • полный путь к архиву с пробой, если файл располагается вне домашнего каталога ~/.hcl-get), или
 hcl-get -c /полный/путь/файл_с_расширением

если файл комментария располагается вне пределов домашней директории ~/.hcl-get по пути /полный/путь/файл_с_расширением. См. справку по программе для полного представления о возможностях конкретизировать запрос на добавление комментария.

После того, как комментарий успешно добавлен к данным пробы, к его содержимому можно обратиться командой

 hcl-get -rc номер

где "номер" равен номеру, присвоенному пробе оборудования сервером

Поиск

После добавления данных в базу, можно поискать что-нибудь запоминающееся (если, конечно, в базе присутствуют данные, которые кто-либо загружал). Поиск чувствителен к регистру, а также разделен на поиск среди данных пробы и на поиск среди комментариев.

Поиск среди данных

Поиск среди данных пробы делается командой

hcl-get -q что_ищем

к примеру, мы хотим посмотреть, есть ли что-нибудь в базе от AMD:

hcl-get -q AMD

Полноценный поиск на данный момент не реализован, вместо базы данных по устройствам используется заглушка из компиляции вывода lscpu, lspci.

Поиск среди комментариев

Поиск среди комментариев делается командой

hcl-get -qc что_ищем

Однако, на данный момент этот функционал не реализован.

Количество загруженных проб

Количество загруженных на сервер проб можно узнать, выполнив команду

hcl-get -a

Замечания

Про параметры -h, думаю, не надо объяснять. Единственное, что нужно добавить, что при вызове

hcl-get -v

или

hcl-get --version

в дополнение к версии клиента будет выведена и версия сервера.