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

Содержание

Журнал

Пятница (08/14/09)

/dev/ttyp0
11:50:03
#echo test | mail -s first-test user@agro.net.nt

11:50:53
#echo test | mail -s first-test user@debian1.agro.net.nt
[root@debian1:mail]#  mail -u user
No mail for user
11:52:53
#apt-get install popa3d
[root@debian1:mail]#  mail -u user
Mail version 8.1.2 01/15/2001.  Type ? for help.
"/var/mail/user": 1 message 1 new
>N  1 root@agro.net.nt   Fri Aug 14 12:51   16/632   first-test
& test
Unknown command: "test"
& 1
Message 1:
From root@agro.net.nt  Fri Aug 14 12:51:08 2009
Date: Fri, 14 Aug 2009 12:51:08 +0300
...
Subject: first-test
test
& Interrupt
&
[1]+  Stopped                 mail -u user
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Уже установлена самая новая версия popa3d.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено.
11:53:08
#apt-get install clamav clamav-daemon clamav-testfiles
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Уже установлена самая новая версия clamav.
Предлагаемые пакеты:
  daemon clamav-docs
НОВЫЕ пакеты, которые будут установлены:
  clamav-daemon clamav-testfiles
обновлено 0, установлено 2 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено.
Необходимо скачать 589kБ архивов.
...
Настраивается пакет clamav-daemon (0.95.2+dfsg-4) ...
insserv: warning: script 'K01bind' missing LSB tags and overrides
insserv: warning: script 'K01xinetd' missing LSB tags and overrides
insserv: warning: script 'S18libdevmapper1.02' missing LSB tags and overrides
insserv: warning: script 'bind' missing LSB tags and overrides
insserv: warning: script 'inetd' missing LSB tags and overrides
insserv: warning: script 'libdevmapper1.02' missing LSB tags and overrides
insserv: warning: script 'xinetd' missing LSB tags and overrides
Starting ClamAV daemon: clamd .
Настраивается пакет clamav-testfiles (0.95.2+dfsg-4) ...
прошло 64 минуты
12:57:41
#dpkg -S clamav-testfiles
clamav-testfiles: /usr/share/doc/clamav-testfiles/copyright
clamav-testfiles: /usr/share/clamav-testfiles/clam-v2.rar
clamav-testfiles: /usr/share/doc/clamav-testfiles/README.gz
clamav-testfiles: /usr/share/clamav-testfiles/clam.cab
clamav-testfiles: /usr/share/doc/clamav-testfiles/AUTHORS
clamav-testfiles: /usr/share/doc/clamav-testfiles/NEWS.Debian.gz
clamav-testfiles: /usr/share/clamav-testfiles/clam.exe
clamav-testfiles: /usr/share/clamav-testfiles/clam-v3.rar
clamav-testfiles: /usr/share/clamav-testfiles
clamav-testfiles: /usr/share/doc/clamav-testfiles/FAQ
clamav-testfiles: /usr/share/doc/clamav-testfiles/README.Debian.gz
clamav-testfiles: /usr/share/clamav-testfiles/clam.zip
clamav-testfiles: /usr/share/clamav-testfiles/clam.exe.bz2
clamav-testfiles: /usr/share/doc/clamav-testfiles/changelog.Debian.gz
clamav-testfiles: /usr/share/doc/clamav-testfiles/changelog.gz
clamav-testfiles: /usr/share/doc/clamav-testfiles/BUGS
clamav-testfiles: /usr/share/doc/clamav-testfiles
12:58:00
#clamscan /usr/share/clamav-testfiles/
/usr/share/clamav-testfiles/clam-v2.rar: OK
/usr/share/clamav-testfiles/clam-v3.rar: OK
/usr/share/clamav-testfiles/clam.cab: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.exe: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.zip: ClamAV-Test-File FOUND
/usr/share/clamav-testfiles/clam.exe.bz2: ClamAV-Test-File FOUND
----------- SCAN SUMMARY -----------
Known viruses: 608668
Engine version: 0.95.2
Scanned directories: 1
Scanned files: 6
Infected files: 4
Data scanned: 0.00 MB
Data read: 0.00 MB (ratio 0.00:1)
Time: 2.560 sec (0 m 2 s)
12:58:17
#apt-get install clamav-milter
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Уже установлена самая новая версия clamav-milter.
обновлено 0, установлено 0 новых пакетов, для удаления отмечено 0 пакетов, и 1 пакетов не обновлено.
12:58:38
#dpkg -L clamav-milter | grep -i Readme.*Debian
/usr/share/doc/clamav-milter/README.Debian.gz
12:59:19
#zless /usr/share/doc/clamav-milter/README.Debian.gz
13:05:31
#grep \/var /etc/mail/sendmail.mc -A 1
dnl INPUT_MAIL_FILTER(`clamav', `S=local:/var/run/clamav/clamav-milter.ctl, F=, T=S:4m;R:4m')dnl
dnl define(`confINPUT_MAIL_FILTERS', `clamav')
INPUT_MAIL_FILTER(`clamav', `S=local:/var/run/clamav/clamav-milter.ctl, F=, T=S:4m;R:4m')dnl
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass/spamass.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl
define(`confINPUT_MAIL_FILTERS', `spamassassin,clamav')dnl
13:06:04
#grep milter.ctl /etc/mail/sendmail.mc /etc/clamav/clamav-milter.conf
[root@debian1:mail]# define(`confINPUT_MAIL_FILTERS', `spamassassin,clamav')dnl
>
/etc/mail/sendmail.mc:dnl INPUT_MAIL_FILTER(`clamav', `S=local:/var/run/clamav/clamav-milter.ctl, F=, T=S:4m;R:4m')dnl
/etc/mail/sendmail.mc:INPUT_MAIL_FILTER(`clamav', `S=local:/var/run/clamav/clamav-milter.ctl, F=, T=S:4m;R:4m')dnl
/etc/clamav/clamav-milter.conf:MilterSocket /var/run/clamav/milter.ctl
13:06:50
#grep milter.ctl /etc/clamav/clamav-milter.conf
MilterSocket /var/run/clamav/clamav-milter.ctl
13:07:24
#apt-get install spamassassin spamass-milter
Чтение информации о состоянии... Готово
Будут установлены следующие дополнительные пакеты:
  libc-dev-bin libc6-dev libcompress-bzip2-perl libdigest-hmac-perl libdigest-sha1-perl liberror-perl
  libfont-afm-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl
  libio-socket-inet6-perl libmail-spf-perl libmailtools-perl libnet-dns-perl libnet-ip-perl
  libnetaddr-ip-perl libsocket6-perl libsys-hostname-long-perl liburi-perl libwww-perl linux-libc-dev
  re2c spamc
Предлагаемые пакеты:
  glibc-doc manpages-dev libdata-dump-perl libcrypt-ssleay-perl libio-socket-ssl-perl razor
  libnet-ident-perl libdbi-perl pyzor libmail-dkim-perl
...
Добавляется новый пользователь `spamass-milter' (UID 111) в группу `nogroup' ...
Создаётся домашний каталог `/var/lib/spamass-milter' ...
insserv: warning: script 'K01bind' missing LSB tags and overrides
insserv: warning: script 'K01xinetd' missing LSB tags and overrides
insserv: warning: script 'S18libdevmapper1.02' missing LSB tags and overrides
insserv: warning: script 'bind' missing LSB tags and overrides
insserv: warning: script 'inetd' missing LSB tags and overrides
insserv: warning: script 'libdevmapper1.02' missing LSB tags and overrides
insserv: warning: script 'xinetd' missing LSB tags and overrides
Starting Sendmail milter plugin for SpamAssassin: spamass-milter
13:07:52
#sed -i -e 's/ENABLED=0/ENABLED=1/' /etc/default/spamassassin

прошло 11 минут
13:19:01
#grep ENABLED /etc/default/spamassassin
ENABLED=1
13:21:02
#grep -r spamass.sock /etc/mail/sendmail.mc
[root@debian1:mail]#  ps waux | grep spamass.sock
111      28396  0.0  0.1  35912   656 ?        Ssl  14:07   0:00 /usr/sbin/spamass-milter -P /var/run/spamass/spamass.pid -f -p /var/run/spamass/spamass.sock -u spamass-milter -i 127.0.0.1
root     28480  0.0  0.1   4788   748 ttyp1    R+   14:21   0:00 grep spamass.sock
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass/spamass.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl
13:21:44
#grep spamass /etc/mail/sendmail.mc
INPUT_MAIL_FILTER(`spamassassin', `S=local:/var/run/spamass/spamass.sock, F=, T=C:15m;S:4m;R:4m;E:10m')dnl
define(`confINPUT_MAIL_FILTERS', `spamassassin,clamav')dnl
13:21:56
# cd /etc/mail ; make
Updating databases ...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/databases...
Updating auth ...
sasl2-bin not installed, not configuring sendmail support.
To enable sendmail SASL2 support at a later date, invoke "/usr/share/sendmail/update_auth"
Creating /etc/mail/relay-domains
# Optional file...
Updating Makefile ...
Reading configuration from /etc/mail/sendmail.conf.
Validating configuration.
Creating /etc/mail/Makefile...
Updating sendmail.cf ...
The following file(s) have changed:
  /etc/mail/sendmail.cf
** ** You should issue `/etc/init.d/sendmail reload` ** **
13:22:11
#aptitude install squid
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Инициализация состояний пакетов... Готово
Запись информации расширенных состояний... Готово
Чтение описаний задач... Готово
Следующие НОВЫЕ пакеты будут установлены:
  squid squid-common{a} squid-langpack{a}
0 пакетов обновлено, 3 установлено новых, 0 пакетов отмечено для удаления, и 1 пакетов не обновлено.
Необходимо получить 1263kB архивов. После распаковки 8438kB будет занято.
...
insserv: warning: script 'libdevmapper1.02' missing LSB tags and overrides
insserv: warning: script 'xinetd' missing LSB tags and overrides
Restarting Squid HTTP proxy: squid.
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Чтение информации о расширенных состояниях
Инициализация состояний пакетов... Готово
Запись информации расширенных состояний... Готово
Чтение описаний задач... Готово
прошло 15 минут
/dev/ttyp5
13:38:05
#ps aux | grep l3
root      2456  0.3  1.4  13056  8360 ?        Ss   09:59   1:02 l3-agent
user      2722  0.1  1.3  12796  8048 ?        Ss   10:21   0:17 l3-agent
root     28644  0.0  0.1   4788   744 ttyp6    R+   14:38   0:00 grep l3
прошло 84 минуты
/dev/ttyp0
15:02:29
#netstat -lnp | grep :3128
tcp        0      0 0.0.0.0:3128            0.0.0.0:*               LISTEN      28993/(squid)
прошло 15 минут
15:17:59
#netstat -lnp | grep :3128
tcp        0      0 0.0.0.0:3128            0.0.0.0:*               LISTEN      28993/(squid)
15:18:38
#mcedit /etc/squid/squid.conf
#<----->for:             -      2     911+35 1946         72249            099 0x063
        while the data is sent to the client.  This will define the maximum
#<----->number of memory-only buffers that COSS will use.  The default value
 <----->is 10, which will use a maximum of 10MB of memory for buffers.
#
        maxfullbufs=n defines the maximum number of stripes a COSS partition
#<----->will have in memory waiting to be freed (either because the disk is
#<----->under load and the stripe is unwritten, or because clients are still
#<----->transferring data from objects using the memory).  In order to try
#<----->If circumstances require, this limit will be exceeded.
...
#<----->Set this to 'round-robin' as an alternative.
#
#Default:
  store_dir_select_algorithm least-load
#<-
#<----->'Level-1' is the number of first-level subdirectories which
#<----->will be created under the 'Directory'.  The default is 16.
#
        'Level-2' is the number of second-level subdirectories which
#
прошло 11 минут
15:30:09
#telnet 127.0.0.1 3128
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.
Connection closed by foreign host.
15:31:01
#service squid reload
Reloading Squid configuration files.
done.

Статистика

Время первой команды журнала11:50:03 2009- 8-14
Время последней команды журнала15:31:01 2009- 8-14
Количество командных строк в журнале25
Процент команд с ненулевым кодом завершения, % 8.00
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 1.20
Количество командных строк в единицу времени, команда/мин 0.35
Частота использования команд
grep10|===============================| 31.25%
apt-get4|============| 12.50%
dpkg2|======| 6.25%
echo2|======| 6.25%
mail2|======| 6.25%
netstat2|======| 6.25%
ps1|===| 3.12%
zless1|===| 3.12%
telnet1|===| 3.12%
sed1|===| 3.12%
aptitude1|===| 3.12%
service1|===| 3.12%
cd1|===| 3.12%
make1|===| 3.12%
mcedit1|===| 3.12%
clamscan1|===| 3.12%
____
*) Интервалы неактивности длительностью 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$