International conference of developers
and users of free / open source software

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

Игорь Чубин – Учебный центр “Сетевые технологии”, Киев, Украина – igor@chub.in

LVEE 2007

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

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

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

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

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

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

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

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

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

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

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

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

Преимущества использования программы script для записи:
- запись производится прозрачно;
- может выполняться во время демонстрации;
- запись не содержит ошибок.

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

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

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

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

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

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

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

источники

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