LVEE 2007 06

Материал из Linux Vacation/Eastern Europe (LVEE).

LILALO - ПО ведения журналов работы в консоли UNIX-систем

Игорь Чубин - Учебный центр "Сетевые технологии" - Киев, Украина


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

В процессе работы в консоли Unix/Linux-системы, будь то непосредственное выполнение задач администрирования, экспериментирование с целью найти и описать решение какой-то задачи или самообучения, демонстрация приёмов работы на живых примерах или что-то другое, часто возникает необходимость зафиксировать происходящий в консоли процесс.

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

Запись обычно выполняется одним из нескольких способов:

  • запись вручную на бумаге;
  • запись вручную в электронном виде;
  • запись путём копирования мышью в текстовый редактор;
  • с применением программы script.

Каждый из этих способов имеет собственные недостатки.

Недостатки существующих способов записи:

запись вручную на бумаге

Преимущества:

  • может использоваться для записи команд, которые выполняются на другом компьютере или демонстрируются с помощью проектора.

Недостатки:

  • долго;
  • неудобно;
  • может содержать ошибки;
  • непригодна к дальнейшей электронной обработке.

Запись вручную в электронном виде обладает теми же достоинствами и недостатками, что и в случае ручной записи, но результат записи поддаётся дальнейшей электронной обработке.

Запись путём копирования в текстовый редактор имеет то преимущество, что копирование выполняется быстро и без ошибок. Недостатком является то, что копирование в текстовый редактор требует дополнительных действий и, что особенно важно, при обучении -- оно невозможно во время демонстрации команд.

В Unix существует программа script, которая автоматически выполняет запись всего происходящего на терминале, где она запущена.

Преимущества использования программы script для записи:

  • запись производится прозрачно;
  • может выполняться во время демонстрации;
  • запись не содержит ошибок.

Недостатки:

  • необходимость в обработке после завершения записи;
  • запись может производиться только для действий выполняемых непосредственно в командной строке.

Предлагаемое решение, система ведения журналов работы с терминалом Unix-системы LiLaLo [1], свободно от всех перечисленных выше недостатков и обладает рядом преимуществ.

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

Автоматическая запись дополнительной информации о командных строках возможна за счёт модификации приглашения командного интерпретатора. Хотя визуально это (практически) никак не заметно, приглашение командного интерпретатора модифицируется, и в него, в скрытом виде, добавляется несколько параметров, характеризующих команду, которая набирается в этом приглашении и будет выполнена. В их числе:

  • текущий каталог, из которого производится вызов команды;
  • время;
  • код завершения предыдущей команды и ряд других.

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

Записанные данные хранятся в формате программы script, то есть, фактически, непосредственно в виде набора команд терминалу. Они могут быть обработаны и представлены в структурированной форме, в виде XML-файла. Который в дальнейшем может быть либо преобразован в HTML-файл и визуализирован, либо может просто попасть в хранилище.

Анализ терминального скрипта, преобразование его в XML и визуализация при помощи веб-интерфейса выполняется в реальном времени и без всякого дополнительного участия пользователя.


источники

http://xgu.ru/wiki/LiLaLo -- домашняя страница проекта LiLaLo

Личные инструменты