Устройство LiLaLo

Материал из Xgu.ru

Перейти к: навигация, поиск

< LiLaLo

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

  • l3-скрипт - запись хода работы;
  • l3-agent — анализ терминального скрипта, преобразование его в XML-форму;
  • l3-backend — приём и размещение в хранилище;
  • l3-frontend — представление через Web-интерфейс.

В качестве l3-скрипта используется стандартная программа script из Unix. Модифицируется приглашение командного интерпретатора - в нём скрывается различная информация о команде, которая затем показывается в журнале. Время выполнения команды, код завершения предыдущей команды, текущий каталог и другая.

Файлы журналов, записываемые l3-скриптом, анализируются l3-agent'ом; данные, полученные в результате анализа, передаются на l3-backend. Там они записываются в файловое хранилище, доступное для просмотра через web-интерфейс с помощью l3-frontend'а.

[править] Поля

АТРИБУТЫ cline СПИСОК ПОЛЕЙ, ХАРАКТЕРИЗУЮЩИХ КОМАНДНУЮ СТРОКУ

   uid			[agent]
       Идентификатор пользователя
   euid
       Идентификатор пользователя от имени которого будет 
       выполняться команда.
       Может отличаться от реального uid в том случае,
       если вызывается с помощью sudo
   tty 		[agent]
       Идентификатор терминала, на котором была вызвана команда
   pid 		[agent]
       PID-процесса командного интерпретатора, 
       в котором была вызвана команда
   
   pwd (!) 		[agent]
       текущий каталог, из которого была вызвана команда


   time (!) 		[agent]
       время вызова команды в Unix-формате.
       Предпочтительнее использовать этот формат чем hour:min:sec,
       использовавшийся в Labmaker
   
   fullprompt 		[agent]
       Приглашение командной строки

ЗАКОММЕНТИРОВАНО. МОЖЕТ БЫТЬ БУДЕТ УДАЛЕНО

   prompt 		[agent]
       Сокращённое приглашение командной строки
   cline  		[agent]
       Командная строка
   
   output 		[agent]
       Результат выполнения команды
   
   diff		[agent]
       Указатель на ассоциированный с командой diff
   
   note (!)		
       Текстовый комментарий к команде.
       Может генерироваться из самого лога с помощью команд
           #^ Комментарий  
           #= Комментарий
           #v Комментарий
       в том случае, если для комментирования достаточно одной строки,
       или с помощью команд
           cat > /dev/null #^ Заголовок
           Текст
           ^D
       в том случае, если комментарий развёрнутый.
       В последнем случае комментарий может содержать 
       заголовок, абзацы и несложное форматирование.
       Символы ^, v или = после знака комментария # обозначает,
       к какой команде относится комментарий:
       к предыдущей (^), последующей (v)
       или это общий комментарий по тексту, не относящийся непосредственно
       ни к одной из них (=)
   note_title
   	Заголовок к пометке, если он используется	
   err 		[agent]
       Код завершения командной строки
   
   histnum (!) 	[agent]
       Номер команды в истории командного интерпретатора
   histline		[agent]
   	Строка истории, соответствующая команде.
   
   status (!)
       Является ли данная команда вызванной (r), запомненной (s)
       или это подсказка completion (c).
       
       Команды, которые были вызваны и обработаны интерпретатором
       имеют состояние "r". К таким командам относится большинство 
       команд вводимых в интерпретатор.
       Если команда набрана, но вызывать её по какой-либо причине
       не хочется (например, команда может быть не полной, вредоносной
       или просто бессмысленной в текущих условиях),
       её можно сбросить с помощью комбинации клавиш Ctrl-C
       (не путайте с прерыванием работающей команды! здесь она даже
       не запускается!).
       В таком случае она не выполняется, но попадает в журнал
       со статусом "s".
       
       Если команда появилась в журнале благодаря автопродолжению 
       -- когда было показано несколько вариантов --
       она имеет статус "c".
   
   
   version (!)		[agent]
       Версия lilalo-prompt использовавшаяся при записи
       команды.
       0 - версия использовавшая в labmaker.
           Отсутствует информация о текущем каталоге и номере в истории. 
           Информация о версии также не указана в приглашении.
           
       
       1 - версия использующаяся в lilalo
       
   raw_file		[agent]
       Имя файла, в котором находится бинарное представление журнала.
       Может содержать ключевое слово HERE, 
       обозначающее что бинарное представление хранится
       непосредственно в базе данных в атрибуте raw_data
   raw_start		[agent]
       Начало блока командной строки в файле бинарного представления
   
   raw_output_start	[agent]
       Начало блока вывода
   
   raw_end		[agent]
       Конец блока командной строки в файле бинарного представления
   raw_cline		[agent]
       Необработанная командная строка (без приглашения) в бинарном виде
   
   raw_data (*)
       Бинарное представление команды и результатов её выполнения


Исторические


   day
       время вызова, день
       В действительности здесь хранится не время вызова команды,
       а с момента появления приглашения командного интерпретатора
       для ввода команды
       
   
   hour
       время вызова, час
   
   min
       время вызова, минута
   
   sec
       время вызова, секунда


   lab 
       лабораторная работа, к которой относится команда.
       Идентификатор текущей лабораторной работы 
       хранится в файле ~/.labmaker/lab


ТАБЛИЦА SESSION

   Информация о сеансах
       (см. lm-install)


local_session_id id сессии в пределах хоста hostname Имя хоста user Имя пользователя открывшего сессию login_from Откуда была открыта сессия; доменное имя или IP-адрес tty Терминал, который привязан к сессии system Имя и релиз операционной системы `uname -rs` parent Имя процесса-родителя ppid PID процесса-родителя pid PID текущего процесса start_time Время, когда была открыта сессия

[править] LiLaLo на Xgu.ru