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

Содержание

Журнал

Пятница (02/26/10)

/dev/pts/1
17:03:22
#ip -V
ip utility, iproute2-ss080725
прошло 12 минут
17:15:29
#whereis ip
ip: /bin/ip /sbin/ip /usr/sbin/ip /usr/share/man/man8/ip.8.gz /usr/share/man/man8/ip.8 /usr/share/man/man7/ip.7.gz
17:16:18
#/bin/ip -V
ip utility, iproute2-ss080725
17:16:26
#/sbin/ip -V
ip utility, iproute2-ss080725
17:16:29
#/usr/sbin/ip -V
ip utility, iproute2-ss100224
17:16:39
#ip -V
ip utility, iproute2-ss100224
прошла 31 минута
17:48:22
#cd /root

17:49:54
#wget ftp://andthatsjazz.org/pub/lartc/ultimate-2.6.sh
--2010-02-26 16:49:56--  ftp://andthatsjazz.org/pub/lartc/ultimate-2.6.sh
           => `ultimate-2.6.sh'
Распознаётся andthatsjazz.org... 75.84.202.19
Устанавливается соединение с andthatsjazz.org|75.84.202.19|:21... соединение установлено.
Выполняется вход под именем anonymous ... Выполнен вход в систему!
==> SYST ... готово.  ==> PWD ... готово.
==> TYPE I ... готово.   ==> CWD /pub/lartc ... готово.
==> SIZE ultimate-2.6.sh ... 15347
==> PASV ... готово.  ==> RETR ultimate-2.6.sh ... готово.
Длина: 15347 (15K)
100%[============================================>] 15 347      17,8K/s   в 0,8s
2010-02-26 16:50:02 (17,8 KB/s) - `ultimate-2.6.sh' сохранён [15347]
17:50:02
#vim ultimate-2.6.sh
--- /tmp/l3-saved-4357.557.8137	2010-02-26 16:50:10.000000000 +0000
+++ ultimate-2.6.sh	2010-02-26 17:05:20.000000000 +0000
@@ -20,10 +20,10 @@
 # Stanford is in class 30; egress rate 36% ceil 92%, ingress rate 57% ceil 92%
 # Download w/HTB is plenty (5.2x), don't tweak.
 # Upload w/UPLINK=470 -> range 416 - 420 = ~85% of uCEIL.  Try for 90% - 91%.
-dCEIL=9740	# Stanford max down with no shaping (best of 3 tests)
-DNLINK=9350	# (.95*dCEIL, rounded down)
-uCEIL=974	# Stanford max up (best of 3 tests).
-UPLINK=952	# Tweak.  (was 470=.95*uCEIL, rounded up)
+dCEIL=950	# Stanford max down with no shaping (best of 3 tests)
+DNLINK=855	# (.95*dCEIL, rounded down)
+uCEIL=256	# Stanford max up (best of 3 tests).
+UPLINK=240	# Tweak.  (was 470=.95*uCEIL, rounded up)
 # Percentages, egress:
 # sum(Ie + Ae + Be + Pe) _MUST_ = 100
 Ie=7			# Interactive
прошло 15 минут
18:05:20
#ultimate-2.6.sh
bash: ultimate-2.6.sh: команда не найдена
18:05:24
#./ulti

18:05:37
#chmod +x ultimate-2.6.sh

18:05:43
#ultimate-2.6.sh
bash: ultimate-2.6.sh: команда не найдена
18:05:45
#./ultimate-2.6.sh
/usr/sbin/ultimate.sh:
cat: /etc/firewall/SupportJ: Нет такого файла или каталога
FATAL: Module ipt_IMQ not found.
FATAL: Module imq not found.
FATAL: Module imq not found.
18:05:50
#modprobe ipt_IMQ
FATAL: Module ipt_IMQ not found.
18:06:15
#cd /var/downloads/iptables-1.4.4/

18:06:23
#patch -p1 --dry-run <../
ChangeLog                        iproute2-2.6.x-esfq.diff.tar.gz
esfq-0.3/                        iptables-1.4.4/
esfq-0.3.tar.gz                  iptables-1.4.4-imq.diff
esfq-iproute2.patch              iptables-1.4.4.tar.bz2
iproute2-2.6.33/                 lilalo/
iproute2-2.6.33.tar.bz2          README
iproute2-2.6.x-esfq.diff         sfq-iproute.patch
18:06:23
#patch -p1 --dry-run <../iptables-1.4.4-imq.diff
The next patch would create the file extensions/libxt_IMQ.c,
which already exists!  Assume -R? [n] n
Apply anyway? [n] y
patching file extensions/libxt_IMQ.c
Patch attempted to create file extensions/libxt_IMQ.c, which already exists.
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file extensions/libxt_IMQ.c.rej
The next patch would create the file include/linux/netfilter/xt_IMQ.h,
which already exists!  Assume -R? [n] n
Apply anyway? [n] y
patching file include/linux/netfilter/xt_IMQ.h
Patch attempted to create file include/linux/netfilter/xt_IMQ.h, which already exists.
Hunk #1 FAILED at 1.
1 out of 1 hunk FAILED -- saving rejects to file include/linux/netfilter/xt_IMQ.h.rej
18:07:05
#cd /usr/src/linux

18:07:17
#make menuconfig
  x x                                                                           x x
  x Symbol: NETFILTER_XT_TARGET_IMQ [=y]                                          x
  x x                                                                           x x
  x   Selects: IMQ [=y]etfilter Configuration                                     x
  x x                                                                             x
  x                                                                               x
  x Symbol: IMQ_BEHAVIOR_AA [=n]                                                  x
  x   qqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
  x Prompt: IMQ AA                                                                x
     x
...
             x  <ESC><ESC> to continue.                                 x
             tqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqu
             x                   < Yes >      <  No  >                  x
             mqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqqj
  x x    [*] Networking support  --->                                           x x
#
# configuration written to .config
#
*** End of Linux kernel configuration.
*** Execute 'make' to build the kernel or try 'make help'.
18:12:47
#make
scripts/kconfig/conf -s arch/x86/Kconfig
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-x86
  CC      kernel/bounds.s
  GEN     include/linux/bounds.h
  CC      arch/x86/kernel/asm-offsets.s
  GEN     include/asm/asm-offsets.h
  CALL    scripts/checksyscalls.sh
  CC      init/main.o
...
  CC      net/sched/sch_prio.mod.o
  LD [M]  net/sched/sch_prio.ko
  CC      net/sched/sch_red.mod.o
  LD [M]  net/sched/sch_red.ko
  CC      net/sched/sch_sfq.mod.o
  LD [M]  net/sched/sch_sfq.ko
  CC      net/sched/sch_tbf.mod.o
  LD [M]  net/sched/sch_tbf.ko
  CC      net/sched/sch_teql.mod.o
  LD [M]  net/sched/sch_teql.ko
прошло 22 минуты
18:35:35
#make modules
  CHK     include/linux/version.h
  CHK     include/linux/utsrelease.h
  SYMLINK include/asm -> include/asm-x86
  CALL    scripts/checksyscalls.sh
  Building modules, stage 2.
  MODPOST 93 modules
18:36:03
#make modules_install
  INSTALL arch/x86/kernel/test_nx.ko
  INSTALL arch/x86/kvm/kvm-amd.ko
  INSTALL arch/x86/kvm/kvm-intel.ko
  INSTALL arch/x86/kvm/kvm.ko
  INSTALL drivers/char/hw_random/amd-rng.ko
  INSTALL drivers/net/dummy.ko
  INSTALL drivers/net/ppp_generic.ko
  INSTALL drivers/net/pppoe.ko
  INSTALL drivers/net/pppox.ko
  INSTALL drivers/net/slhc.ko
...
  INSTALL net/sched/sch_hfsc.ko
  INSTALL net/sched/sch_htb.ko
  INSTALL net/sched/sch_ingress.ko
  INSTALL net/sched/sch_netem.ko
  INSTALL net/sched/sch_prio.ko
  INSTALL net/sched/sch_red.ko
  INSTALL net/sched/sch_sfq.ko
  INSTALL net/sched/sch_tbf.ko
  INSTALL net/sched/sch_teql.ko
  DEPMOD  2.6.32.3
18:36:16
#mkinitramfs -o /boot/initrd-2.6.32.3-esfq-imq

18:36:24
#scp /boot/initrd-2.6.32.3-esfq-imq 192.168.8.140:/boot/
root@192.168.8.140's password:
initrd-2.6.32.3-esfq-imq                            100% 1904KB   1.9MB/s   00:00
18:36:47
#halt

Статистика

Время первой команды журнала17:03:22 2010- 2-26
Время последней команды журнала18:36:47 2010- 2-26
Количество командных строк в журнале26
Процент команд с ненулевым кодом завершения, %11.54
Процент синтаксически неверно набранных команд, % 7.69
Суммарное время работы с терминалом *, час 1.03
Количество командных строк в единицу времени, команда/мин 0.42
Частота использования команд
ip5|=================| 17.86%
make4|==============| 14.29%
ultimate-2.6.sh3|==========| 10.71%
cd3|==========| 10.71%
patch2|=======| 7.14%
scp1|===| 3.57%
mkinitramfs1|===| 3.57%
halt1|===| 3.57%
modprobe1|===| 3.57%
ulti1|===| 3.57%
wget1|===| 3.57%
chmod1|===| 3.57%
whereis1|===| 3.57%
vim1|===| 3.57%
../1|===| 3.57%
iptables-1.4.4-imq.diff1|===| 3.57%
____
*) Интервалы неактивности длительностью 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$