lilalo
diff lm-install @ 27:098664cf339c
Выполнены шаги 4,5 в плане N05 по построению распределённой системы lilalo.
Шаг <6> в настоящее время не является необходимым.
Введено понятие сеанса.
Сеансом считается процедура работы с системой, начинающаяся с регистрации
в ней и зазаканчивающаяся разрегистрацией, и сопровождающаяся ведением одного
файла скрипта.
Одновременно с созданием скрипта (.script) создаётся соответствующий ему
файл с информацией о сеансе (.info).
Каждый сеанс имеет уникальный в пределах хоста идентификатор,
~local_session_id~, который впоследствии позволяет определить,
какие команды относятся к какому сеансу.
Добавлен backend-сервер, который получает данные от агентов и записывает
из в backend (в настойщий момент - в XML-файл).
Данные передаются по tcp-соединениям.
(Одновременно может работать несколько серверов.
Блокировка файла при записи пока что не выполняется ОСТОРОЖНО!!!!!!)
Агент периодически пытается отправить backend-серверу содержимое своего кэш-файла,
и если ему это удаётся, кэш файл очищается -- данные теперь хранятся в backend'е.
Взаимодействие агентов, backend-сервера и frontend'а
сейчас выполнеятся так:
+-------+
| |
| cache |
| |
+-^---+-+
| |
. ^ v . ^^ . +---------+ . ^^ .
/ \ tcp / \ | | / \ CGI
( agent )----->( backend- )-->| backend |-->( frontend )----->
\ / \ сервер / | | \ /
' . ' ' .. ' +---------+ ' .. '
^
|
+----+----+
| |
|*.script |
| *.info |
| |
+---------+
l3-frontend:
Теперь может выдавать результат работы на стандартный поток вывода.
Вместо имени файла нужно указать символ -
Добавлены файлы:
l3-backend - backend-сервер
l3-cgi - CGI-обвязка для l3-frontend'а
Новые конфигурационные параметры:
frontend_css Путь к файлу CSS, используемому в HTML-странице, которую генерирует frontend
frontend_google_ico Путь к иконке google
frontend_linux_ico Путь к иконке linux
frontend_freebsd_ico Путь к иконке freebsd
frontend_opennet_ico Путь к иконке opennet
frontend_local_ico Путь к иконке локальной документации
backend_address IP-адрес интерфейса, на котором работает backend-сервер
backend_port Порт, который слушает backend-сервер
backend_pidfile Путь к файлу, который хранит идентификатор процесса backend-сервера
backend_datafile Путь к файлу хранилищу (файлу backend)
Шаг <6> в настоящее время не является необходимым.
Введено понятие сеанса.
Сеансом считается процедура работы с системой, начинающаяся с регистрации
в ней и зазаканчивающаяся разрегистрацией, и сопровождающаяся ведением одного
файла скрипта.
Одновременно с созданием скрипта (.script) создаётся соответствующий ему
файл с информацией о сеансе (.info).
Каждый сеанс имеет уникальный в пределах хоста идентификатор,
~local_session_id~, который впоследствии позволяет определить,
какие команды относятся к какому сеансу.
Добавлен backend-сервер, который получает данные от агентов и записывает
из в backend (в настойщий момент - в XML-файл).
Данные передаются по tcp-соединениям.
(Одновременно может работать несколько серверов.
Блокировка файла при записи пока что не выполняется ОСТОРОЖНО!!!!!!)
Агент периодически пытается отправить backend-серверу содержимое своего кэш-файла,
и если ему это удаётся, кэш файл очищается -- данные теперь хранятся в backend'е.
Взаимодействие агентов, backend-сервера и frontend'а
сейчас выполнеятся так:
+-------+
| |
| cache |
| |
+-^---+-+
| |
. ^ v . ^^ . +---------+ . ^^ .
/ \ tcp / \ | | / \ CGI
( agent )----->( backend- )-->| backend |-->( frontend )----->
\ / \ сервер / | | \ /
' . ' ' .. ' +---------+ ' .. '
^
|
+----+----+
| |
|*.script |
| *.info |
| |
+---------+
l3-frontend:
Теперь может выдавать результат работы на стандартный поток вывода.
Вместо имени файла нужно указать символ -
Добавлены файлы:
l3-backend - backend-сервер
l3-cgi - CGI-обвязка для l3-frontend'а
Новые конфигурационные параметры:
frontend_css Путь к файлу CSS, используемому в HTML-странице, которую генерирует frontend
frontend_google_ico Путь к иконке google
frontend_linux_ico Путь к иконке linux
frontend_freebsd_ico Путь к иконке freebsd
frontend_opennet_ico Путь к иконке opennet
frontend_local_ico Путь к иконке локальной документации
backend_address IP-адрес интерфейса, на котором работает backend-сервер
backend_port Порт, который слушает backend-сервер
backend_pidfile Путь к файлу, который хранит идентификатор процесса backend-сервера
backend_datafile Путь к файлу хранилищу (файлу backend)
author | devi |
---|---|
date | Mon Nov 07 11:24:49 2005 +0200 (2005-11-07) |
parents | 05d496f33d76 |
children | 4d252e7dd478 |
line diff
1.1 --- a/lm-install Tue Jun 28 09:16:07 2005 +0300 1.2 +++ b/lm-install Mon Nov 07 11:24:49 2005 +0200 1.3 @@ -68,31 +68,54 @@ 1.4 | sed '/LabMaker:START/,/LabMaker:END/ d' \ 1.5 > $temp_file 1.6 cat <<'LM_bash_profile' >> $temp_file 1.7 - # LabMaker:START 1.8 - TTY=`tty` 1.9 +# LabMaker:START 1.10 +LMHOME=~/.labmaker 1.11 +mkdir -p ${LMHOME} 1.12 1.13 - uname -a | grep -qi bsd && bsd=yes 1.14 +uname -a | grep -qi bsd && bsd=yes 1.15 +flush="-f" #linux 1.16 +[ -n "$bsd" ] && flush="-t 0" #freebsd 1.17 1.18 - this_term=`w | grep "${TTY##/dev/}" | awk '{print $8;}'` 1.19 - # freeBSD: 1.20 - [ -n "$bsd" ] && this_term=`w | grep "${TTY##/dev/tty}" | awk '{print $6;}'` 1.21 +tty=`tty` 1.22 +this_term=`w | grep "${tty##/dev/}" | awk '{print $8;}'` 1.23 +# freeBSD: 1.24 +[ -n "$bsd" ] && this_term=`w | grep "${tty##/dev/tty}" | awk '{print $6;}'` 1.25 1.26 1.27 +export PS1='\[` 1.28 + a="$?"; 1.29 + HIDDEN=$([ "$a" = 0 ] || echo -n ^"$a")$(echo -n _${UID}_)$(echo -n _$$_)$(date\ 1.30 + +"%j$(cat ${LMHOME}/lab 2>/dev/null) %H:%M:%S"); 1.31 + echo $HIDDEN`\033[50D\033[K\][\u@\h:\W]\$ ' 1.32 1.33 - LMHOME=~/.labmaker 1.34 - mkdir -p ${LMHOME} 1.35 - flush="-f" #linux 1.36 - [ -n "$bsd" ] && flush="-t 0" #freebsd 1.37 - export PS1='\[` a="$?"; 1.38 - HIDDEN=$([ "$a" = 0 ] || echo -n ^"$a")$(echo -n _${UID}_)$(echo -n _$$_)$(date\ 1.39 - +"%j$(cat ~/.labmaker/lab 2>/dev/null) %H:%M:%S"); 1.40 - echo $HIDDEN`\033[50D\033[K\][\u@\h:\W]\$ ' 1.41 +if [ -n "$this_term" ] && echo $this_term | grep -qv script 1.42 +then 1.43 + session_id=${tty##*/}-$$ 1.44 + parent=`cat /proc/$PPID/cmdline 2> /dev/null` 1.45 + system=`uname -rs` 1.46 + login_from=`who | grep "${tty##/dev/}" | awk '{print $6;}' | tr -d '()'` 1.47 + [ -n "$bsd" ] && login_from="" #FIXME! 1.48 + start_time=`date +%s` 1.49 + hostname=`hostname -f` 1.50 1.51 - if [ -n "$this_term" ] && echo $this_term | grep -qv script 1.52 - then 1.53 - exec script $flush -q $LMHOME/${TTY##*/}-$$.script 1.54 - fi 1.55 - # LabMaker:END 1.56 + cat <<INFO > $LMHOME/${session_id}.info 1.57 +<session> 1.58 +<session_id>$session_id</session_id> 1.59 +<hostname>$hostname</hostname> 1.60 +<user>$USER</user> 1.61 +<login_from>$login_from</login_from> 1.62 +<tty>$tty</tty> 1.63 +<system>$system</system> 1.64 +<parent>$parent</parent> 1.65 +<ppid>$PPID</ppid> 1.66 +<pid>$$</pid> 1.67 +<start_time>$start_time</start_time> 1.68 +</session> 1.69 +INFO 1.70 + 1.71 + exec script $flush -q $LMHOME/${session_id}.script 1.72 +fi 1.73 +# LabMaker:END 1.74 LM_bash_profile 1.75 cat $temp_file > $profile 1.76 rm $temp_file