Журнал лабораторных работ

Содержание

Журнал

Понедельник (05/14/12)

/dev/pts/1
01:14:41
#od

01:14:47
#id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
/dev/pts/1
01:15:16
#id
uid=0(root) gid=0(root) groups=0(root),1(bin),2(daemon),3(sys),4(adm),6(disk),10(wheel)
01:15:43
#w
 03:16:46 up 28 days,  2:47,  4 users,  load average: 0.03, 0.07, 0.16
USER     TTY      FROM              LOGIN@   IDLE   JCPU   PCPU WHAT
root     tty1     -                16Apr12 28days  4:24   4:24  /usr/bin/mc -P
root     pts/1    91.219.24.240    03:14    0.00s  0.01s  0.01s script -f -c l3
root     pts/4    91.219.24.240    03:06    6:07   0.44s  0.43s /usr/bin/mc -P
root     pts/2    -                03:15    0.00s  0.01s  0.00s w
01:16:46
#l3shot
/usr/bin/which: no xwd in (/usr/kerberos/sbin:/usr/kerberos/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin)
Can't make screenshot :(
I must use program xwd to make screenshot,
but it seems not to be installed
Try to find the program in the "xbase-clients" package
01:17:41
#pwd
/root
01:18:49
#mkdir server

01:18:53
#cd server/

01:18:56
#wget http://xgu.ru/download/lilalo.tar.gz
--2012-05-14 03:18:58--  http://xgu.ru/download/lilalo.tar.gz
Resolving xgu.ru... 46.4.85.204
Connecting to xgu.ru|46.4.85.204|:80... connected.
HTTP request sent, awaiting response... 200 OK
Length: 151793 (148K) [application/x-gzip]
Saving to: `lilalo.tar.gz'
100%[======================================>] 151,793      538K/s   in 0.3s
2012-05-14 03:18:58 (538 KB/s) - `lilalo.tar.gz' saved [151793/151793]
01:18:58
#ls -l
total 156
-rw-r--r-- 1 root root 151793 Mar 16  2008 lilalo.tar.gz
01:19:01
#gzip -d *

01:19:03
#tar xfvp *
lilalo/
lilalo/l3config.pm
lilalo/lm-ssh
lilalo/lm
lilalo/tail-backend.pl
lilalo/PM/
lilalo/PM/Text-Iconv-1.4.tar.gz
lilalo/PM/Term-VT102-0.82.tar.gz
lilalo/FILES
lilalo/l3prompt
...
lilalo/CVS/
lilalo/CVS/Repository
lilalo/CVS/Root
lilalo/CVS/Entries
lilalo/l3-cgi
lilalo/lilalo.kdi
lilalo/HISTORY
lilalo/LICENSE
lilalo/l3-backend
lilalo/l3-report
01:19:05
#ls -l
total 480
drwxr-xr-x 8 1000 1000   4096 Mar 16  2008 lilalo
-rw-r--r-- 1 root root 481280 Mar 16  2008 lilalo.tar
01:20:04
#cd lilalo

01:20:06
#ls -l
total 340
drwxr-xr-x 2 1000 1000  4096 Mar 13  2008 CVS
drwxr-xr-x 3 1000 1000  4096 Jun 23  2006 DELETE
drwxr-xr-x 2 1000 1000  4096 Jun 13  2007 doc
-rw-r--r-- 1 1000 1000  1496 May 22  2005 FILES
-rw-r--r-- 1 1000 1000  1607 Nov  7  2005 HISTORY
-rwxr-xr-x 1 1000 1000  5168 Mar 10  2008 install
-rw-r--r-- 1 1000 1000   452 May 22  2005 INSTALL
-rwxr-xr-x 1 1000 1000 32757 Mar 16  2008 l3-agent
-rwxr-xr-x 1 1000 1000  3881 Mar 10  2008 l3-backend
...
-rw-r--r-- 1 1000 1000  5325 Jan 20  2006 mysql
-rw------- 1 1000 1000   671 Jul  3  2007 nohup.out
drwxr-xr-x 2 1000 1000  4096 Nov 13  2005 PM
-rw-r--r-- 1 1000 1000  8545 Feb 11  2008 README
-rw-r--r-- 1 1000 1000   896 Nov 16  2006 rebuild-all-logs
drwxr-xr-x 3 1000 1000  4096 May 22  2005 share
-rw-r--r-- 1 1000 1000  1598 Nov  3  2005 tail-all.pl
-rw-r--r-- 1 1000 1000  1067 Nov 18  2005 tail-backend.pl
-rw-r--r-- 1 1000 1000   157 May 22  2005 taillast.pl
-rw-r--r-- 1 1000 1000  3742 Feb 15  2006 TODO
01:20:07
#cp l3-backend /usr/bin/

01:20:32
#chmod +x /usr/bin/l3-backend

01:20:38
#/usr/bin/l3-backend &
[1] 31138
01:20:53
#/usr/bin/l3-backend
l3-backend is already running
01:21:08
#cd /var/

01:21:11
#ls -l
total 144
drwxr-xr-x  2 root root  4096 Jan 11  2011 account
drwxr-xr-x  9 root root  4096 Apr  2 00:52 cache
drwxr-xr-x  3 root root  4096 May 11  2011 db
drwxr-xr-x  3 root root  4096 May 11  2011 empty
drwxr-xr-x  3 root root  4096 May 31  2011 ftp
drwxr-xr-x  2 root root  4096 May 11  2011 games
drwxr-xr-x 22 root root  4096 Jan  9 05:12 lib
drwxr-xr-x  2 root root  4096 May 11  2011 local
drwxrwxr-x  6 root lock  4096 May 13 04:23 lock
drwxr-xr-x 12 root root  4096 May 13 04:02 log
lrwxrwxrwx  1 root root    10 May 13  2011 mail -> spool/mail
drwxr-x---  5 root named 4096 Jan 24 00:37 named
drwxr-xr-x  2 root root  4096 May 11  2011 nis
drwxr-xr-x  2 root root  4096 May 11  2011 opt
drwxr-xr-x  2 root root  4096 May 11  2011 preserve
drwxr-xr-x  2 root root  4096 Aug 25  2010 racoon
drwxr-xr-x 17 root root  4096 May 14 02:30 run
drwxr-xr-x  9 root root  4096 Apr  2 00:52 spool
drwxrwxrwt  2 root root  4096 Apr  2 01:29 tmp
drwxr-xr-x  3 root root  4096 Jun 30  2011 yp
/dev/pts/1
01:21:17
#cd /var

01:21:19
#ls -l
total 144
drwxr-xr-x  2 root root  4096 Jan 11  2011 account
drwxr-xr-x  9 root root  4096 Apr  2 00:52 cache
drwxr-xr-x  3 root root  4096 May 11  2011 db
drwxr-xr-x  3 root root  4096 May 11  2011 empty
drwxr-xr-x  3 root root  4096 May 31  2011 ftp
drwxr-xr-x  2 root root  4096 May 11  2011 games
drwxr-xr-x 22 root root  4096 Jan  9 05:12 lib
drwxr-xr-x  2 root root  4096 May 11  2011 local
drwxrwxr-x  6 root lock  4096 May 13 04:23 lock
drwxr-xr-x 12 root root  4096 May 13 04:02 log
lrwxrwxrwx  1 root root    10 May 13  2011 mail -> spool/mail
drwxr-x---  5 root named 4096 Jan 24 00:37 named
drwxr-xr-x  2 root root  4096 May 11  2011 nis
drwxr-xr-x  2 root root  4096 May 11  2011 opt
drwxr-xr-x  2 root root  4096 May 11  2011 preserve
drwxr-xr-x  2 root root  4096 Aug 25  2010 racoon
drwxr-xr-x 17 root root  4096 May 14 02:30 run
drwxr-xr-x  9 root root  4096 Apr  2 00:52 spool
drwxrwxrwt  2 root root  4096 Apr  2 01:29 tmp
drwxr-xr-x  3 root root  4096 Jun 30  2011 yp
01:21:21
#cd /var/lilalo/lablogs-xml
l3script: cd: /var/lilalo/lablogs-xml: No such file or directory
01:21:36
#mkdir /var/lilalo/lablogs-xml
mkdir: cannot create directory `/var/lilalo/lablogs-xml': No such file or directory
01:21:41
#mkdir /var/lilalo/lablogs-xml
mkdir: cannot create directory `/var/lilalo/lablogs-xml': No such file or directory
01:21:49
#mkdir /var/lilalo/

01:21:58
#mkdir /var/lilalo/lablogs-xml

01:21:59
#ps aux | grep mkdir /var/lilalo/lablogs-xml

01:22:10
#ps aux | grep l3
root     28516  0.5  2.3 102808 12204 ?        Ss   03:04   0:06 l3-agent
root     31146  0.0  1.1  90508  5724 ?        Ss   03:20   0:00 l3-backend
root     31234  0.0  0.1  63012   576 pts/1    S+   03:21   0:00 script -f -c l3script -q /root/.lilalo//9472160802710310990-1336951277.script
root     31279  0.0  0.0  63016   352 pts/1    S+   03:21   0:00 script -f -c l3script -q /root/.lilalo//9472160802710310990-1336951277.script
root     31280  0.1  0.3  66200  1672 pts/2    Ss   03:21   0:00 l3script
root     31496  0.0  0.1  61176   772 pts/2    S+   03:22   0:00 grep l3
01:22:15
#ps aux | grep l3
root     28516  0.5  2.3 102808 12204 ?        Ss   03:04   0:06 l3-agent
root     31146  0.0  1.1  90508  5724 ?        Ss   03:20   0:00 l3-backend
root     31234  0.0  0.1  63012   576 pts/1    S+   03:21   0:00 script -f -c l3script -q /root/.lilalo//9472160802710310990-1336951277.script
root     31279  0.0  0.0  63016   352 pts/1    S+   03:21   0:00 script -f -c l3script -q /root/.lilalo//9472160802710310990-1336951277.script
root     31280  0.0  0.3  66200  1672 pts/2    Ss   03:21   0:00 l3script
root     31505  0.0  0.1  61176   772 pts/2    S+   03:22   0:00 grep l3
01:22:18
#kill 31146

01:22:23
#kill 31146
l3script: kill: (31146) - No such process
01:22:24
#/usr/bin/l3-backend

01:22:30
#/usr/bin/l3-backend start
l3-backend is already running
01:22:34
#cd /var/lilalo/lablogs-xml

01:22:43
#ls -l
total 0
01:22:44
#ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.1  10368   592 ?        Ss   Apr16   0:02 init [3]
root         2  0.0  0.0      0     0 ?        S<   Apr16   0:06 [migration/0]
root         3  0.0  0.0      0     0 ?        SN   Apr16   0:00 [ksoftirqd/0]
root         4  0.0  0.0      0     0 ?        S<   Apr16   0:05 [migration/1]
root         5  0.0  0.0      0     0 ?        SN   Apr16   0:00 [ksoftirqd/1]
root         6  0.0  0.0      0     0 ?        S<   Apr16   0:00 [events/0]
root         7  0.0  0.0      0     0 ?        S<   Apr16   0:00 [events/1]
root         8  0.0  0.0      0     0 ?        S<   Apr16   0:00 [khelper]
root        13  0.0  0.0      0     0 ?        S<   Apr16   0:00 [kthread]
...
root     28811  0.0  0.3  66068  1624 pts/4    Ss   03:06   0:00 -bash
root     29584  0.0  0.6  81832  3180 pts/4    S+   03:10   0:00 /usr/bin/mc -P /tmp/mc-root/mc.pwd.28811
root     29586  0.0  0.3  66068  1596 pts/3    Ss+  03:10   0:00 bash -rcfile .bashrc
root     30029  0.0  0.6  90164  3424 ?        Rs   03:14   0:00 sshd: root@pts/1
root     30031  0.0  0.3  66068  1612 pts/1    Ss   03:14   0:00 -bash
root     31234  0.0  0.1  63012   576 pts/1    S+   03:21   0:00 script -f -c l3script -q /root/.lilalo//94721608
root     31279  0.0  0.0  63016   352 pts/1    R+   03:21   0:00 script -f -c l3script -q /root/.lilalo//94721608
root     31280  0.0  0.3  66200  1728 pts/2    Ss   03:21   0:00 l3script
root     31543  0.0  1.1  90508  5720 ?        Ss   03:22   0:00 l3-backend
root     31663  0.0  0.1  65596   988 pts/2    R+   03:22   0:00 ps aux
01:22:54
#ps aux | grep httpd
root     31672  0.0  0.1  61172   760 pts/2    S+   03:23   0:00 grep httpd
01:23:01
#ps aux | grep nginx
root      3267  0.0  0.0  93864   352 ?        Ss   Apr16   0:00 nginx: master process /usr/sbin/nginx -c /etc/nginx/nginx.conf
nginx     3268  0.0  0.2  94368  1060 ?        S    Apr16   0:00 nginx: worker process
root     31696  0.0  0.1  61176   772 pts/2    S+   03:23   0:00 grep nginx
/dev/pts/1
01:25:25
#ps uax | grep l3
root     28516  0.5  2.3 102808 12204 ?        Ss   03:04   0:07 l3-agent
root     31543  0.0  1.1  90508  5720 ?        Ss   03:22   0:00 l3-backend
root     32029  0.0  0.1  63012   576 pts/1    S+   03:25   0:00 script -f -c l3script -q /root/.lilalo//4555265621738015867-1336951525.script
root     32074  0.0  0.0  63016   352 pts/1    S+   03:25   0:00 script -f -c l3script -q /root/.lilalo//4555265621738015867-1336951525.script
root     32075  0.2  0.3  66200  1640 pts/2    Ss   03:25   0:00 l3script
root     32110  0.0  0.1  61176   768 pts/2    S+   03:25   0:00 grep l3
01:25:30
#mc
01:25:34
#README [----] 0 L:[ 22+ 0 22/209] *(307 /5497b)= А 1040 0x410
АТРИБУТЫ cline          188+ 2 190        5107         .   9 0x09
                            ²Ð°, минута                                             ˆÐµÐ½Ð¸Ñ) в бинарном виде
    min                                                                   каталоге и номере в истории.енно
        id сессии в пределах хоста                                    ˆÐµÐ½Ð¸Ñ) в бинарном виде
local_session_id
01:26:03
#35 0x23

01:26:13
#35 0x23

01:26:13
#35 0x23
#!/bin/sh                         3+21  24        410             32 0x20
LILALO_SCREENSHOTS_PATH=/var/www/l3shot
LILALO_SCREENSHOTS_PATH=/var/www/l3shot
XML=/var  ilalo/lablogs-xml/trainings
copy_screenshots()
copy_screenshots()
    for xwd
{   do
        [ -e "$xwd" ] || continue
        xwd_name="${xwd##*/}"
        name="${xwd_name%.xwd}"
        echo Processing screenshot $name
        convert "$xwd" "${LILALO_SCREENSHOTS_PATH}/$name.png"
    done
}
}
for i in /var/lilalo/lablogs/trainings/*
do
                                         Move   7Search
01:26:13
#install [----] 0 L:[ 22+ 0 22/184] *(579 /5168b)= u 117 0x75
url_l3bashrc="${url_lilalo}"/l3ba43rc   43        1100            32 0x20
    then
        apt-get install -y $apt_get_install_this
    else
        if echo $answer | grep -q ^[yY]dencies manually:"
        thentrue
        else "Have you installed this already (y/n)?"
            exit 1
            echo Please install the dependencies and rerun the script
        fi
...
wget=wget
uname -a | grep -qi bsd && wget=fetch
normC='\033[0;39m'
whiteC='\033[1;37m'
redC='\033[0;31m'
greenC='\033[0;32m'
apt_get_install_deps()
{
    if which apt-get >& /dev/null
    then
01:26:36
#35 0x23
#!/usr/bin/perl -w              106+ 7 113        2835             32 0x20
# Чтениlocal $/;·Ð¼ÐµÐ½ÐµÐ½Ð¸Ðµ кодировки содержимого diff-файла
#           open (F, "$file")
sub load_diff_fior return "Can't open file $file ($_[0]) for reading";ификации файла
#           my $text = <F>;
            if ($Config{"encoding"} && $Config{"encoding"} !~ /^utf-8$/i) {
use             my $converter = Text::Iconv->new($Config{"encoding"}, "utf-8");
  e POSImy $template = "*.diff";Files{$file}->{tell}
            }
            close(F);
...
            )3[\#]                      # version
    my $commandlines_loaded =0;
                                'cols' => $Config{"terminal_width"},
    my $commandlines_processed =0;               {"terminal_height"});По одному на каждый сеанс
                                        # uid
    my $converter = Text::Iconv->new($Config{"encoding"}, "utf-8")
    my @lab_scripts = <$lab_scripts_path/$lab_scripts_mask>;r                                      скольку diff'ы могли образоваться только что
        if ($Config{"encoding"} && $Config{"encoding"} !~ /^utf-8$/i);
    my $cline_re = qr/$cline_re_base/sx;
            ([0-9]+)[\#]                # exitcode  || $Config{"input"})) {
01:26:36
#35 0x23

01:26:36
#35 0x23
#!/usr/bin/perl            0 L:[  1+ 2   3        17           u 117 0x75
use strict;
                                               необходимо
use lib '/etc/lilalo/';ach} =~ /^y/i) {
sub maininit_config();
use l3config;                                 ённый клиент
use l3co                                    сокет и слушаем
use IO::Socket;       яем, возможно демон уже запущен                      ───── Search ───────────────────────┐
use POSI                                       ¾ÑÑ‚о завершаемся            Search ──────────┐
use POSIX qw(:sys_wait_h);$Config{backend_pidfile})) {                                  │
...
sub REAP1 until (-1 == waitpid(-1, WNOHANG));
sub main$SIG{CHLD} = \&REAPER;                                                                       │
                        unlink $Config{backend_pidfile}    3-backend"} /proc/$pid/cmdline && grep "uid:.*\b$<\b" /proc/$pid/status`) {          ”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”€â”˜
}
# Путь l3cd }
sub process_was_killed
        # Здесь должна быть красивая процедура
{       # завершения демона     Ð¾ÐµÐ´Ð¸Ð½ÐµÐ½ÐµÐ½Ð¸Ð¹,          l")) {
# и в unlink $Config{backend_pidfile};                                    ºÐ¾Ð³Ð¾ алфавита, цифры и знаки _ и -
                    if (open(OUT, ">>", $Config{"backend_datadir"}."/$l3cd/data.xml")) {
01:26:36
#l3config.pm [----] 0 L:[ 1+ 0 1/184] *(0 /5579b)= p 112 0x70
package l3config;          5     77+16  93        2984         b  98 0x62
    "files_keywords"    => "linux file",d",
use utf8;                                                                                            ──── Replace ───────────────────────┐
         ter;                                                                                        │
use vars qw(@ISA @EXPORT $VERSION);                                                                  │
    comment_width       => "300",           ┌─────────────────────── Search ───────────────────────┐
                                                                                                     │
    note_width          => "500",                                                                    │
    "mode"              => "daemon",        # daemon | normal                                        │
    "detach"th          => "yes",                                                                    │
...
    "backend_port"      => "18030",                                                                  │
    "backend_pidfile"   => "/tmp/l3-backend.pid",                                                    ────────────────────────────────────┘
    "backend_address"   => "xgu.ru",
    "skip_empty"        => "yes",
    "skip_interrupted"  => "no",
    "skip_wrong"        => "no",
    "editors"           => ["vi", "pico", "ee", "vim", "nano"],
    "pagers"            => ["more", "less", "zmore", "zless", "info",
                            "man", "mc", "trafshow", "screen", "cfdisk",
         Save   3Mark   4Replac          Move   7Search
01:27:48
#l3-backend [----] 0 L:[ 1+ 2 3/138] *(17 /3445b)= u 117 0x75
#!/usr/bin/perl                  43  3  46        890          .   9 0x09
                }
        }       Config{backend_pidfile};
use strict;
        # Уходим в background, если необходимо
use l3config;
                #$Config{verbose} = "no";
use POSIX qw(:symy $pid = fork;
sub main {      exit if $pid;
sub main        die "Couldn't fork: $!" unless defined ($pid);
...
sub REAPER {
                        print "Removing stale pidfile\n";
        # Проверяем, возможно демон уже запущен
                        unlink $or die "Can't remove stale pidfile ". $Config{backend_pidfile}. " : $!";
sub process_was_killed
                }
                        print "l3-backend is already running\n";оцедура
                        exit(0);´ÐµÐ¼Ð¾Ð½Ð°
                }
         Save   3Mark   4Replac          Move   7Search
01:28:06
#l3config.pm [----] 26 L:[ 83+10 93/184] *(3005/5579b)= " 34 0x22
                          26     14+21  35        1009            32 0x20
$ENV{HOME} ||= "/tmp";
our %Config = (
    "skip_empty"        => "yes",
    "skip_interrupted"  => "no",
    "skip_wrong"        => "no",
    "editors"           => ["vi", "pico", "ee", "vim", "nano"],
    "pagers"            => ["more", "less", "zmore", "zless", "info",
                            "man", "mc", "trafshow", "screen", "cfdisk",
                            "trafshow-bsd", "yes", "lynx", "links", "centericq"
                            ],
    "full_output_commands" => ["cat"],
    "terminal"          => ["mc"],
    "suppress_editors"  => "yes",
    "suppress_pagers"   => "yes",
    "suppress_terminal" => "yes",
    "terminal_width"    => 400,
    "terminal_height"   => 1000,
    "verbose"           => "yes",
         Save   3Mark   4Replac          Move   7Search
01:28:18
#l3config.pm [----] 0 L:[ 1+ 0 1/184] *(0 /5579b)= p 112 0x70
                                  2 21  23        595             32 0x20
01:30:00
#lilalo.conf [----] 0 L:[ 1+ 0 1/ 1] *(0 / 0b)= <EOF>

01:30:59
#l3config.pm [----] 0 L:[ 1+ 3 4/184] *(29 /5579b)= u 117 0x75
package l3config;               148+ 4 152        4948         .  10 0x0A
    "year"              =>  "2006",                              ‚чётам
    "commands_to_show_at_a_go" => "100",
     show_host"             no",
    "start_from_command" => "0",un",
# Ф                 ORT                                                        ехваченных команд
);                    nd                                      ²Ð°Ñ€Ð¸Ð°Ð½Ñ‚Ñ‹:
sub read_config_file    => "class",         # Имя файла класса
        my $config = $_[0];                                    »Ð° класса
{       my $filename = $_[1];
...
        chomp;                            h/id_dsa.pub",
#"l3            s/#.*//;
    "lmssh"     next if /^\s*$/;-ssh",
                my ($var, $val) =  split /\s*=\s*/, $_, 2;
# К            $var =~ s/\s*//;
                $config->{$var} = $val;
        }
        close(CONFIG);
                                                                 ‚чётам
    "year"              =>  "2006",                              ‚чётам
01:31:17
#lilalo.conf [----] 0 L:[ 1+ 0 1/ 1] *(0 / 0b)= <EOF>

01:31:27
#lilalo.conf [----] 0 L:[ 1+ 0 1/ 1] *(0 / 0b)= <EOF>

01:31:27
#lilalo.conf [----] 0 L:[ 1+ 0 1/ 1] *(0 / 0b)= <EOF>

01:31:27
#35 0x23

01:31:27
#lilalo.conf [----] 0 L:[ 1+ 0 1/ 1] *(0 / 0b)= <EOF>

01:31:27
# Left File Command Options Right
l3config.pm        [----]  0 L:[163+10 173/184] *(5252/5579b)= .   9 0x09
 <┠           my ($var, $val) =  split /\s*=\s*/, $_, 2;             v>┐┌<─/etc/lilalo                                                       v>
                $var =~ s/\s*//;
                $config->{$var} = $val;
        }                                                                                                                                       02
        close(CONFIG);                                                   1
                                                                         1 1 ▒│                                                │       ┠             ▒
}                                                                        1
                                                                         7
    "start_from_command" => "0",                                         1
...
        read_config_file(\%file_config, $User_Config_File);              1
        GetOptions(\%argv_config, map "$_=s", keys %Config);;            0
        %Config = (%Config, %file_config, %argv_config);                 8
    for my $key (keys %Config) {                                         9
        utf8::decode($Config{$key});
    }
                s/#.*//;
                next if /^\s*$/;
                my ($var, $val) =  split /\s*=\s*/, $_, 2;
         Save   3Mark   4Replac          Move   7Search
01:31:40
#35 0x23

01:31:45
#l3-config --help

01:32:04
#35 0x23

01:32:04
#l3config.pm [----] 0 L:[163+21 184/184] *(5579/5579b)= <EOF>
                my ($var, $5al)  77+16  93\s*=\s*/2984, 2;     b  98 0x62
    "files_keywords"    => "linux file",d",
use utf8;
         ter;
use vars qw(@ISA @EXPORT $VERSION);
    comment_width       => "300",           ┌─────────────────────── Search ───────────────────────┐
                                                                                                     │
    note_width          => "500",                                                                    │
    "mode"              => "daemon",        # daemon | normal                                        │
    "detach"th          => "yes",                                                                    │
...
    "backend_port"      => "18030",
    "backend_pidfile"   => "/tmp/l3-backend.pid",
    "backend_address"   => "xgu.ru",
our %skip_empty"           "yes",
    "skip_interrupted"  => "no",
    "skip_wrong"        => "no",
    "editors"           => ["vi", "pico", "ee", "vim", "nano"],
}   "pagers"            => ["more", "less", "zmore", "zless", "info",‘там
                            "man", "mc", "trafshow", "screen", "cfdisk",ам
    "course-name"Mark   => "",c          Move   7Search
01:32:25
#l3config.pm [----] 5 L:[ 79+10 89/184] *(2795/5579b)= b 98 0x62
  Left     File     Command     Options     Right
    "lab"               => "",
    "keywords"          => "linux command",
    "files_keywords"    => "linux file",
    comment_width       => "300",
    note_width          => "500",
    time_width          => "6em",
    "mode"              => "daemon",        # daemon | normal
    "daemon_sleep_interval" => "10",
    "detach"            => "yes",
    "agent_pidfile"     => "$ENV{HOME}/.lilalo/l3-agent.pid",
    "backend_address"   => "xgu.ru",
    "backend_port"      => "18030",
    "backend_pidfile"   => "/tmp/l3-backend.pid",
    "backend_datafile"  => "/var/lilalo/lablogs-xml/backend.xml",
    "backend_datadir"  => "/var/lilalo/lablogs-xml/",
    "upload_dir"        => "/var/www/l3shot",
    "l3-agent"          => "l3-agent",
    "l3-backend"        => "l3-backend",
         Save   3Mark   4Replac          Move   7Search
01:35:34
#l3config.pm [----] 5 L:[ 87+10 97/184] *(3125/5579b)= l 108 0x6C
  Left     File     Command     Options     Right
    "signature"         => "#lm:",
    "from"              => "",
    "to"                => "",
    "lab"               => "",
    "keywords"          => "linux command",
    "files_keywords"    => "linux file",
    comment_width       => "300",
    note_width          => "500",
    time_width          => "6em",
    "mode"              => "daemon",        # daemon | normal
    "daemon_sleep_interval" => "10",
                                {
    "agent_pidfile"     => "$ENV{HOME}/.lilalo/l3-agent.pid",
    "backend_address"   => "127.0.0.1",
    "backend_port"      => "18030",
    "backend_pidfile"   => "/tmp/l3-backend.pid",
    "backend_datafile"  => "/var/lilalo/lablogs-xml/backend.xml",
    "backend_datadir"  => "/var/lilalo/lablogs-xml/",                                        Save file ─────────────┐
         Save   3Mark   4Replac          Move   7Search
01:35:59
#exit
exit
read (subshell_pty...): Input/output error (5)

Статистика

Время первой команды журнала01:14:41 2012- 5-14
Время последней команды журнала01:35:59 2012- 5-14
Количество командных строк в журнале69
Процент команд с ненулевым кодом завершения, %10.14
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 0.36
Количество командных строк в единицу времени, команда/мин 3.24
Частота использования команд
359|===========| 11.11%
ps7|========| 8.64%
l3config.pm7|========| 8.64%
EOF>6|=======| 7.41%
cd6|=======| 7.41%
grep6|=======| 7.41%
ls6|=======| 7.41%
mkdir5|======| 6.17%
l3-backend5|======| 6.17%
lilalo.conf5|======| 6.17%
id2|==| 2.47%
kill2|==| 2.47%
README1|=| 1.23%
l3shot1|=| 1.23%
Left1|=| 1.23%
od1|=| 1.23%
wget1|=| 1.23%
pwd1|=| 1.23%
chmod1|=| 1.23%
cp1|=| 1.23%
l3-config1|=| 1.23%
install1|=| 1.23%
gzip1|=| 1.23%
exit1|=| 1.23%
mc1|=| 1.23%
tar1|=| 1.23%
w1|=| 1.23%
____
*) Интервалы неактивности длительностью 30 минут и более не учитываются

Справка

Для того чтобы использовать LiLaLo, не нужно знать ничего особенного: всё происходит само собой. Однако, чтобы ведение и последующее использование журналов было как можно более эффективным, желательно иметь в виду следующее:
  1. В журнал автоматически попадают все команды, данные в любом терминале системы.

  2. Для того чтобы убедиться, что журнал на текущем терминале ведётся, и команды записываются, дайте команду w. В поле WHAT, соответствующем текущему терминалу, должна быть указана программа script.

  3. Команды, при наборе которых были допущены синтаксические ошибки, выводятся перечёркнутым текстом:
    $ l s-l
    bash: l: command not found
    

  4. Если код завершения команды равен нулю, команда была выполнена без ошибок. Команды, код завершения которых отличен от нуля, выделяются цветом.
    $ test 5 -lt 4
    Обратите внимание на то, что код завершения команды может быть отличен от нуля не только в тех случаях, когда команда была выполнена с ошибкой. Многие команды используют код завершения, например, для того чтобы показать результаты проверки

  5. Команды, ход выполнения которых был прерван пользователем, выделяются цветом.
    $ find / -name abc
    find: /home/devi-orig/.gnome2: Keine Berechtigung
    find: /home/devi-orig/.gnome2_private: Keine Berechtigung
    find: /home/devi-orig/.nautilus/metafiles: Keine Berechtigung
    find: /home/devi-orig/.metacity: Keine Berechtigung
    find: /home/devi-orig/.inkscape: Keine Berechtigung
    ^C
    

  6. Команды, выполненные с привилегиями суперпользователя, выделяются слева красной чертой.
    # id
    uid=0(root) gid=0(root) Gruppen=0(root)
    

  7. Изменения, внесённые в текстовый файл с помощью редактора, запоминаются и показываются в журнале в формате ed. Строки, начинающиеся символом "<", удалены, а строки, начинающиеся символом ">" -- добавлены.
    $ vi ~/.bashrc
    2a3,5
    >    if [ -f /usr/local/etc/bash_completion ]; then
    >         . /usr/local/etc/bash_completion
    >        fi
    

  8. Для того чтобы изменить файл в соответствии с показанными в диффшоте изменениями, можно воспользоваться командой patch. Нужно скопировать изменения, запустить программу patch, указав в качестве её аргумента файл, к которому применяются изменения, и всавить скопированный текст:
    $ patch ~/.bashrc
    В данном случае изменения применяются к файлу ~/.bashrc

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

    Если справочная информация о команде есть, команда выделяется голубым фоном, например: vi. Если справочная информация отсутствует, команда выделяется розовым фоном, например: notepad.exe. Справочная информация может отсутствовать в том случае, если (1) команда введена неверно; (2) если распознавание команды LiLaLo выполнено неверно; (3) если информация о команде неизвестна LiLaLo. Последнее возможно для редких команд.

  10. Большие, в особенности многострочные, всплывающие подсказки лучше всего показываются браузерами KDE Konqueror, Apple Safari и Microsoft Internet Explorer. В браузерах Mozilla и Firefox они отображаются не полностью, а вместо перевода строки выводится специальный символ.

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

  12. Имя терминала, на котором была введена команда, показано в специальном блоке. Этот блок показывается только в том случае, если терминал текущей команды отличается от терминала предыдущей.

  13. Вывод не интересующих вас в настоящий момент элементов журнала, таких как время, имя терминала и других, можно отключить. Для этого нужно воспользоваться формой управления журналом вверху страницы.

  14. Небольшие комментарии к командам можно вставлять прямо из командной строки. Комментарий вводится прямо в командную строку, после символов #^ или #v. Символы ^ и v показывают направление выбора команды, к которой относится комментарий: ^ - к предыдущей, v - к следующей. Например, если в командной строке было введено:

    $ whoami
    
    user
    
    $ #^ Интересно, кто я?
    
    в журнале это будет выглядеть так:
    $ whoami
    
    user
    
    Интересно, кто я?

  15. Если комментарий содержит несколько строк, его можно вставить в журнал следующим образом:

    $ whoami
    
    user
    
    $ cat > /dev/null #^ Интересно, кто я?
    
    Программа whoami выводит имя пользователя, под которым 
    мы зарегистрировались в системе.
    -
    Она не может ответить на вопрос о нашем назначении 
    в этом мире.
    
    В журнале это будет выглядеть так:
    $ whoami
    user
    
    Интересно, кто я?
    Программа whoami выводит имя пользователя, под которым
    мы зарегистрировались в системе.

    Она не может ответить на вопрос о нашем назначении
    в этом мире.
    Для разделения нескольких абзацев между собой используйте символ "-", один в строке.

  16. Комментарии, не относящиеся непосредственно ни к какой из команд, добавляются точно таким же способом, только вместо симолов #^ или #v нужно использовать символы #=

  17. Содержимое файла может быть показано в журнале. Для этого его нужно вывести с помощью программы cat. Если вывод команды отметить симоволами #!, содержимое файла будет показано в журнале в специально отведённой для этого секции.
  18. Для того чтобы вставить скриншот интересующего вас окна в журнал, нужно воспользоваться командой l3shot. После того как команда вызвана, нужно с помощью мыши выбрать окно, которое должно быть в журнале.
  19. Команды в журнале расположены в хронологическом порядке. Если две команды давались одна за другой, но на разных терминалах, в журнале они будут рядом, даже если они не имеют друг к другу никакого отношения.
    1
        2
    3   
        4
    
    Группы команд, выполненных на разных терминалах, разделяются специальной линией. Под этой линией в правом углу показано имя терминала, на котором выполнялись команды. Для того чтобы посмотреть команды только одного сенса, нужно щёкнуть по этому названию.

О программе

LiLaLo (L3) расшифровывается как Live Lab Log.
Программа разработана для повышения эффективности обучения Unix/Linux-системам.
(c) Игорь Чубин, 2004-2008

$Id$