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

Содержание

Журнал

Четверг (07/10/08)

/dev/pts/5
18:46:59
#for i in 1 2 3; do ssh 192.168.15.$i sh
/root/migrate-to-the-next: line 5: 192.168.15.1: command not found
/root/migrate-to-the-next: line 6: 192.168.15.2: command not found
/root/migrate-to-the-next: line 7: 192.168.15.3: command not found
/root/migrate-to-the-next: line 8: TABLE: command not found
xm --live migrate vl2
/root/migrate-to-the-next: line 5: 192.168.15.1: command not found
/root/migrate-to-the-next: line 6: 192.168.15.2: command not found
/root/migrate-to-the-next: line 7: 192.168.15.3: command not found
/root/migrate-to-the-next: line 8: TABLE: command not found
xm --live migrate vl2
/root/migrate-to-the-next: line 5: 192.168.15.1: command not found
/root/migrate-to-the-next: line 6: 192.168.15.2: command not found
/root/migrate-to-the-next: line 7: 192.168.15.3: command not found
/root/migrate-to-the-next: line 8: TABLE: command not found
xm --live migrate vl2
18:47:10
#vi migrate-to-the-next
18:47:10
#vi migrate-to-the-next
--- /tmp/l3-saved-2554.925.22885	2008-07-10 15:47:23.000000000 +0000
+++ migrate-to-the-next	2008-07-10 15:47:43.000000000 +0000
@@ -1,7 +1,7 @@
 #!/bin/sh
 
 IP="$(ifconfig br0 | grep 'inet addr' | awk '{print }' | sed s/.*://)"
-FURTHER=$(cat <<TABLE | grep $IP | awk '{print $2}')
+cat <<TABLE | grep $IP | awk '{print $2}' | read FURTHER
 192.168.15.1 192.168.15.2
 192.168.15.2 192.168.15.3
 192.168.15.3 192.168.15.1
18:47:43
#for i in 1 2 3; do scp migrate-to-the-next 192.168.15.$i:/root/ ; done
migrate-to-the-next                           100%  261     0.3KB/s   00:00
migrate-to-the-next                           100%  261     0.3KB/s   00:00
migrate-to-the-next                           100%  261     0.3KB/s   00:00
18:47:53
#vi migrate-to-the-next
18:48:05
#vi migrate-to-the-next
18:48:05
#vi migrate-to-the-next
--- /tmp/l3-saved-2554.29539.20455	2008-07-10 15:48:08.000000000 +0000
+++ migrate-to-the-next	2008-07-10 15:48:45.000000000 +0000
@@ -1,11 +1,12 @@
 #!/bin/sh
 
 IP="$(ifconfig br0 | grep 'inet addr' | awk '{print }' | sed s/.*://)"
-cat <<TABLE | grep $IP | awk '{print $2}' | read FURTHER
+FURTHER=$(cat <<TABLE | grep $IP | awk '{print $2}'
 192.168.15.1 192.168.15.2
 192.168.15.2 192.168.15.3
 192.168.15.3 192.168.15.1
 TABLE
+)
 
 echo xm --live migrate vl2 $FURTHER
 
18:48:45
#for i in 1 2 3; do scp migrate-to-the-next 192.168.15.$i:/root/ ; done
migrate-to-the-next                           100%  258     0.3KB/s   00:00
migrate-to-the-next                           100%  258     0.3KB/s   00:00
migrate-to-the-next                           100%  258     0.3KB/s   00:00
18:49:00
#vi migrate-to-the-next
18:49:10
#vi migrate-to-the-next
18:49:10
#vi migrate-to-the-next
18:49:10
#vi migrate-to-the-next
--- /tmp/l3-saved-2554.19104.18283	2008-07-10 15:49:15.000000000 +0000
+++ migrate-to-the-next	2008-07-10 15:49:24.000000000 +0000
@@ -1,6 +1,7 @@
 #!/bin/sh
 
 IP="$(ifconfig br0 | grep 'inet addr' | awk '{print }' | sed s/.*://)"
+echo IP=$IP
 FURTHER=$(cat <<TABLE | grep $IP | awk '{print $2}'
 192.168.15.1 192.168.15.2
 192.168.15.2 192.168.15.3
18:49:24
#vi migrate-to-the-next
18:49:57
#vi migrate-to-the-next
18:50:13
#vi migrate-to-the-next
18:50:13
#vi migrate-to-the-next
--- /tmp/l3-saved-2554.5648.11472	2008-07-10 15:50:17.000000000 +0000
+++ migrate-to-the-next	2008-07-10 15:50:35.000000000 +0000
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-IP="$(ifconfig br0 | grep 'inet addr' | awk '{print }' | sed s/.*://)"
+IP="$(ifconfig br0 | grep 'inet addr' | awk '{print $1}' | sed s/.*://)"
 echo IP=$IP
 FURTHER=$(cat <<TABLE | grep $IP | awk '{print $2}'
 192.168.15.1 192.168.15.2
18:50:35
#for i in 1 2 3; do scp migrate-to-the-next 192.168.15.$i:/root/ ; done
migrate-to-the-next                           100%  272     0.3KB/s   00:00
migrate-to-the-next                           100%  272     0.3KB/s   00:00
migrate-to-the-next                           100%  272     0.3KB/s   00:00
18:50:43
#vi migrate-to-the-next
18:50:51
#ifconfig
br0       Link encap:Ethernet  HWaddr 00:07:e9:0b:2b:1d
          inet addr:10.0.35.1  Bcast:10.255.255.255  Mask:255.0.0.0
          inet6 addr: fe80::207:e9ff:fe0b:2b1d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:45322 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40186 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:4861080 (4.6 MiB)  TX bytes:19437193 (18.5 MiB)
eth1      Link encap:Ethernet  HWaddr 00:0f:fe:7e:b9:4f
          inet addr:192.168.15.250  Bcast:192.168.15.255  Mask:255.255.255.0
...
          collisions:0 txqueuelen:0
          RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)
peth0     Link encap:Ethernet  HWaddr 00:07:e9:0b:2b:1d
          inet6 addr: fe80::207:e9ff:fe0b:2b1d/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:52979 errors:0 dropped:0 overruns:0 frame:0
          TX packets:40176 errors:0 dropped:0 overruns:0 carrier:0
          collisions:547 txqueuelen:100
          RX bytes:8544112 (8.1 MiB)  TX bytes:19648021 (18.7 MiB)
          Base address:0x1100 Memory:f0200000-f0220000
18:50:58
#vi migrate-to-the-next
--- /tmp/l3-saved-2554.23321.8435	2008-07-10 15:51:02.000000000 +0000
+++ migrate-to-the-next	2008-07-10 15:51:08.000000000 +0000
@@ -1,6 +1,6 @@
 #!/bin/sh
 
-IP="$(ifconfig br0 | grep 'inet addr' | awk '{print $1}' | sed s/.*://)"
+IP="$(ifconfig br0 | grep 'inet addr' | awk '{print $2}' | sed s/.*://)"
 echo IP=$IP
 FURTHER=$(cat <<TABLE | grep $IP | awk '{print $2}'
 192.168.15.1 192.168.15.2
18:50:58
#vi migrate-to-the-next
18:51:08
#for i in 1 2 3; do scp migrate-to-the-next 192.168.15.$i:/root/ ; done
migrate-to-the-next                           100%  272     0.3KB/s   00:00
migrate-to-the-next                           100%  272     0.3KB/s   00:00
migrate-to-the-next                           100%  272     0.3KB/s   00:00
18:51:25
#vi migrate-to-the-next
18:51:35
#vi migrate-to-the-next
18:51:35
#vi migrate-to-the-next
--- /tmp/l3-saved-2554.32271.31223	2008-07-10 15:51:47.000000000 +0000
+++ migrate-to-the-next	2008-07-10 15:52:58.000000000 +0000
@@ -2,12 +2,14 @@
 
 IP="$(ifconfig br0 | grep 'inet addr' | awk '{print $2}' | sed s/.*://)"
 echo IP=$IP
-FURTHER=$(cat <<TABLE | grep $IP | awk '{print $2}'
+FURTHER=$(cat <<TABLE | grep $IP
 192.168.15.1 192.168.15.2
 192.168.15.2 192.168.15.3
 192.168.15.3 192.168.15.1
 TABLE
 )
 
+FURTHER=$(echo $FURTHER | awk '{print $2}')
+
 echo xm --live migrate vl2 $FURTHER
 
18:52:58
#for i in 1 2 3; do scp migrate-to-the-next 192.168.15.$i:/root/ ; done
migrate-to-the-next                           100%  298     0.3KB/s   00:00
migrate-to-the-next                           100%  298     0.3KB/s   00:00
migrate-to-the-next                           100%  298     0.3KB/s   00:00
18:53:06
#vi migrate-to-the-next
18:53:14
#vi migrate-to-the-next
18:53:14
#vi migrate-to-the-next
--- /tmp/l3-saved-2554.19676.31051	2008-07-10 15:53:31.000000000 +0000
+++ migrate-to-the-next	2008-07-10 15:55:53.000000000 +0000
@@ -1,15 +1,10 @@
 #!/bin/sh
 
 IP="$(ifconfig br0 | grep 'inet addr' | awk '{print $2}' | sed s/.*://)"
-echo IP=$IP
-FURTHER=$(cat <<TABLE | grep $IP
-192.168.15.1 192.168.15.2
-192.168.15.2 192.168.15.3
-192.168.15.3 192.168.15.1
-TABLE
-)
-
-FURTHER=$(echo $FURTHER | awk '{print $2}')
-
+FURTHER=$IP
+while [ $FURTHER = $IP ]
+do
+FURTHER=192.168.15.$((RANDOM%3+1))
+done
 echo xm --live migrate vl2 $FURTHER
 
18:55:53
#for i in 1 2 3; do scp migrate-to-the-next 192.168.15.$i:/root/ ; done
migrate-to-the-next                           100%  201     0.2KB/s   00:00
migrate-to-the-next                           100%  201     0.2KB/s   00:00
migrate-to-the-next                           100%  201     0.2KB/s   00:00
18:56:00
#vi migrate-to-the-next
18:56:00
#vi migrate-to-the-next
18:56:00
#for i in 1 2 3; do ssh 192.168.15.$i sh /root/migrate-to-the-next; done
xm --live migrate vl2 192.168.15.3
xm --live migrate vl2 192.168.15.3
xm --live migrate vl2 192.168.15.2
18:56:12
#for i in 1 2 3; do next=$(ssh sh /root/migrate-to-the-next | a

18:56:12
#next=192.168.15.1 ; for i in 1 2 3; do next=$(ssh sh /root/mig
ate-to-the-next | awk '{print $5}'); echo $next;
ssh: connect to host sh port 22: Connection refused
ssh: connect to host sh port 22: Connection refused
ssh: connect to host sh port 22: Connection refused
18:58:09
#next=192.168.15.1 ; for i in 1 2 3; do next=$(ssh $next
192.168.15.3
192.168.15.2
192.168.15.1
18:58:28
#vi migrate-to-the-next
--- /tmp/l3-saved-2554.12531.2569	2008-07-10 15:58:39.000000000 +0000
+++ migrate-to-the-next	2008-07-10 15:58:45.000000000 +0000
@@ -7,4 +7,5 @@
 FURTHER=192.168.15.$((RANDOM%3+1))
 done
 echo xm --live migrate vl2 $FURTHER
+echo xm --live migrate vl2 $FURTHER
 
18:58:28
#vi migrate-to-the-next
18:58:28
#vi migrate-to-the-next
18:58:57
#ls /dev/XEN/
meta  vl2   vol1  vol2
18:58:57
#vblade 1 1 eth0 /dev/XEN/vl2
bind funky: No such device
Can't get hw addr: Bad file descriptor
pid 3369: e1.1, 8388608 sectors O_RDWR
Can't get mtu: Bad file descriptor
putpkt aoe id: Bad file descriptor
read network: Bad file descriptor
18:59:32
#vblade
usage: vblade [ -m mac[,mac...] ] shelf slot netif filename
18:59:37
#vblade 1 1 eth0 /dev/XEN/vol2
bind funky: No such device
Can't get hw addr: Bad file descriptor
pid 3388: e1.1, 4194304 sectors O_RDWR
Can't get mtu: Bad file descriptor
putpkt aoe id: Bad file descriptor
read network: Bad file descriptor
18:59:48
#vblade 1 1 eth1 /dev/XEN/vol2
pid 3398: e1.1, 4194304 sectors O_RDWR
[1]+  Stopped                 vblade 1 1 eth1 /dev/XEN/vol2
19:00:00
#bg
[1]+ vblade 1 1 eth1 /dev/XEN/vol2 &
19:00:00
#ssh 192.168.15.3
~
~
~
~
~
~
~
~
~
~
"/etc/xen/vl2" 11L, 261C written
host3:~# modprobe aoe
host3:~# aoe-stat
      e1.1         2.147GB    br0 up
host3:~# exit
logout
Connection to 192.168.15.3 closed.
19:02:14
#ls /etc/XEN
ls: cannot access /etc/XEN: No such file or directory
19:02:19
#ls /dev/XEN/
meta  vl2  vol1  vol2
19:02:23
#pkill vblade

19:02:30
#vblade 1 1 eth1 /dev/XEN/vl2
pid 3461: e1.1, 8388608 sectors O_RDWR
[1]+  Stopped                 vblade 1 1 eth1 /dev/XEN/vl2
19:02:37
#bg
[1]+ vblade 1 1 eth1 /dev/XEN/vl2 &
19:02:47
#ssh 192.168.15.3
Last login: Thu Jul 10 16:00:12 2008 from 192.168.15.250
Linux host3 2.6.18-6-xen-686 #1 SMP Sun Feb 10 22:43:13 UTC 2008 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
host3:~# xm create vl2
Using config file "/etc/xen/vl2".
Started domain vl2
host3:~# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   250     2     r-----    263.2
vl2                                          6   256     1     -b----      1.6
vl3                                          3    64     1     -b----     16.0
host3:~# exit
logout
Connection to 192.168.15.3 closed.
19:03:21
#scp 192.168.15.3:/etc/xen/vl2 .
vl2                                           100%  261     0.3KB/s   00:00
19:03:28
#scp vl2 192.168.15.2:/etc/xen/
vl2                                           100%  261     0.3KB/s   00:00
19:03:36
#scp vl2 192.168.15.1:/etc/xen/
vl2                                           100%  261     0.3KB/s   00:00
19:03:43
#ssh 192.168.15.3
Domain-0                                     0   250     2     r-----    268.1
vl2                                          6   255     1     r-----     40.8
vl3                                          3    63     1     -b----     16.1
host3:~# xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   250     2     r-----    268.3
vl2                                          6   255     1     r-----     41.7
vl3                                          3    63     1     -b----     16.1
host3:~# xm migrate --live vl2 192.168.15.2
host3:~# exit
logout
Connection to 192.168.15.3 closed.
19:09:31
#ssh 192.168.15.2
List information about all/some domains.
  -l, --long                     Output all VM details in SXP
  --label                        Include security labels
  --state=<state>                Select only VMs with the specified state
romix:~#
Broadcast message from root@romix (tty2) (Thu Jul 10 16:18:07 2008):
The system is going down for reboot NOW!
Connection to 192.168.15.2 closed by remote host.
Connection to 192.168.15.2 closed.
19:18:26
#ssh 192.168.15.3

19:26:56
#ssh 192.168.15.2
romix:~# xm shutdown 1
romix:~# scp /etc/xen/vl2 192.168.15.1/:/
romix:~# scp /etc/xen/vl2 192.168.15.1:/etc/xen/
root@192.168.15.1's password:
vl2                                           100%  261     0.3KB/s   00:00
romix:~# netstat -rn
romix:~#
Broadcast message from root@romix (tty1) (Thu Jul 10 16:50:26 2008):
The system is going down for reboot NOW!
Connection to 192.168.15.2 closed by remote host.
Connection to 192.168.15.2 closed.
прошла 41 минута
20:07:56
#brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.0007e90b2b1d       no              peth0
20:07:58
#brctl addbr br1

20:08:05
#brctl addbr br2

20:08:06
#brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.0007e90b2b1d       no              peth0
br1             8000.000000000000       no
br2             8000.000000000000       no
20:08:07
#ip link set br1 up

20:08:13
#ip link set br2 up

20:08:15
#xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   250     2     r-----   1309.8
/dev/pts/7
20:08:19
#screen -x
/dev/pts/5
20:08:50
#xm
Usage: xm <subcommand> [args]
Control, list, and manipulate Xen guest instances.
Common 'xm' commands:
 console              Attach to <Domain>'s console.
 create               Create a domain based on <ConfigFile>.
 new                  Adds a domain to Xend domain management
 delete               Remove a domain from Xend domain management.
 destroy              Terminate a domain immediately.
 dump-core            Dump core for a specific domain.
 help                 Display this message.
...
 suspend              Suspend a Xend managed domain
 top                  Monitor a host and the domains in real time.
 unpause              Unpause a paused domain.
 uptime               Print uptime for all/some domains.
 vcpu-set             Set the number of active VCPUs for allowed for
                      the domain.
<Domain> can either be the Domain Name or Id.
For more help on 'xm' see the xm(1) man page.
For more help on 'xm create' see the xmdomain.cfg(5)  man page.
For a complete list of subcommands run 'xm help'.
20:09:12
#xm help
Usage: xm <subcommand> [args]
Control, list, and manipulate Xen guest instances.
xm full list of subcommands:
 console              Attach to <Domain>'s console.
 create               Create a domain based on <ConfigFile>.
 new                  Adds a domain to Xend domain management
 delete               Remove a domain from Xend domain management.
 destroy              Terminate a domain immediately.
 domid                Convert a domain name to domain id.
 domname              Convert a domain id to domain name.
...
 resources            Show info for each labeled resource.
 dumppolicy           Print hypervisor ACM state information.
 setpolicy            Set the policy of the system.
 resetpolicy          Set the policy of the system to the default
                      policy.
 getpolicy            Get the policy of the system.
 shell                Launch an interactive shell.
<Domain> can either be the Domain Name or Id.
For more help on 'xm' see the xm(1) man page.
For more help on 'xm create' see the xmdomain.cfg(5)  man page.
20:09:21
#xm help --long
Usage: xm <subcommand> [args]
Control, list, and manipulate Xen guest instances.
xm full list of subcommands:
 console              Attach to <Domain>'s console.
 create               Create a domain based on <ConfigFile>.
 new                  Adds a domain to Xend domain management
 delete               Remove a domain from Xend domain management.
 destroy              Terminate a domain immediately.
 domid                Convert a domain name to domain id.
 domname              Convert a domain id to domain name.
...
 resources            Show info for each labeled resource.
 dumppolicy           Print hypervisor ACM state information.
 setpolicy            Set the policy of the system.
 resetpolicy          Set the policy of the system to the default
                      policy.
 getpolicy            Get the policy of the system.
 shell                Launch an interactive shell.
<Domain> can either be the Domain Name or Id.
For more help on 'xm' see the xm(1) man page.
For more help on 'xm create' see the xmdomain.cfg(5)  man page.
20:09:24
#xm network-attach
Error: 'xm network-attach' requires between 1 and 11 arguments.
Usage: xm network-attach <Domain> [type=<type>] [mac=<mac>] [bridge=<bridge>] [ip=<ip>] [script=<script>] [backend=<BackDomain>] [vifname=<name>] [rate=<rate>] [model=<model>][accel=<accel>]
Create a new virtual network device.
20:09:41
#xm network-attach vm1 bridge=br1

Пятница (07/11/08)

13:17:04
#vgdisplay
  --- Volume group ---
  VG Name               polygon
  System ID
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  188
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                4
...
  Open LV               1
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               27.93 GB
  PE Size               4.00 MB
  Total PE              7151
  Alloc PE / Size       2560 / 10.00 GB
  Free  PE / Size       4591 / 17.93 GB
  VG UUID               Eq5fqb-du58-es3V-svu6-58Bo-D7El-Sfl6rP
13:17:06
#vgdisplay | less
13:17:29
#ssh 192.168.15.3
Last login: Thu Jul 10 17:30:25 2008
Linux host3 2.6.18-6-xen-686 #1 SMP Sun Feb 10 22:43:13 UTC 2008 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
host3:~# grep disk /etc/xen/win2
# Define the disk devices you want the domain to have access to, and
# Each disk entry is of the form phy:UNAME,DEV,MODE
...
  LV Size                5.00 GB
  Current LE             1280
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:5
host3:~# exit
logout
Connection to 192.168.15.3 closed.
/dev/pts/1
13:17:46
#screen -x
/dev/pts/5
13:18:19
#lvcreate -L5G -n vol4 /dev/XEN
  Logical volume "vol4" created
13:18:36
#ssh 192.168.15.3
Last login: Fri Jul 11 10:17:40 2008 from 192.168.15.250
Linux host3 2.6.18-6-xen-686 #1 SMP Sun Feb 10 22:43:13 UTC 2008 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
host3:~# nohup cat /dev/turbo/vol4 | nc -l -p 3000 &
[1] 7668
host3:~# nohup: ignoring input and redirecting stderr to stdout
host3:~#
host3:~#
host3:~# exit
logout
Connection to 192.168.15.3 closed.
13:19:26
#nc 192.168.15.3 3000 > /dev/XEN/vol4
^[[B
прошло 19 минут
13:38:47
#ssh 192.168.15.3
Last login: Fri Jul 11 10:18:43 2008 from 192.168.15.250
Linux host3 2.6.18-6-xen-686 #1 SMP Sun Feb 10 22:43:13 UTC 2008 i686
The programs included with the Debian GNU/Linux system are free software;
the exact distribution terms for each program are described in the
individual files in /usr/share/doc/*/copyright.
Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
permitted by applicable law.
host3:~#
host3:~#
host3:~# ps aux | grep nv
root      7729  0.0  0.2   1848   528 pts/2    S+   10:38   0:00 grep nv
host3:~# ps aux | grep nc
root      1973  0.0  0.2  10280   628 ?        Sl   Jul10   0:00 /usr/lib/xen-3.2-1/bin/xenconsoled
root      2997  0.0  0.2  10264   600 tty3     Sl+  Jul10   0:00 /usr/lib/xen-3.2-1/bin/xenconsole 1
root      7731  0.0  0.2   1848   572 pts/2    S+   10:39   0:00 grep nc
host3:~# exit
logout
Connection to 192.168.15.3 closed.
13:39:09
#vblade
usage: vblade [ -m mac[,mac...] ] shelf slot netif filename
13:39:16
#vblade 1 2 br0 /dev/XEN/vol4
pid 5318: e1.2, 10485760 sectors O_RDWR
13:40:07
#brctl show
bridge name     bridge id               STP enabled     interfaces
br0             8000.0007e90b2b1d       no              peth0
br1             8000.000000000000       no
br2             8000.000000000000       no
13:40:11
#ifconfig eth1
eth1      Link encap:Ethernet  HWaddr 00:0f:fe:7e:b9:4f
          inet addr:192.168.15.250  Bcast:192.168.15.255  Mask:255.255.255.0
          inet6 addr: fe80::20f:feff:fe7e:b94f/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:7672966 errors:0 dropped:0 overruns:0 frame:0
          TX packets:3986942 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:100
          RX bytes:2121972191 (1.9 GiB)  TX bytes:926163158 (883.2 MiB)
13:40:15
#vblade 1 2 eth1 /dev/XEN/vol4
pid 5343: e1.2, 10485760 sectors O_RDWR
[2]+  Stopped                 vblade 1 2 eth1 /dev/XEN/vol4
13:46:09
#bg
[2]+ vblade 1 2 eth1 /dev/XEN/vol4 &
13:46:10
#ssh 192.168.15.2
#                            on_reboot   = 'destroy'
#                            on_crash    = 'destroy'
#on_poweroff = 'destroy'
#on_reboot   = 'restart'
#on_crash    = 'restart'
#============================================================================
# New stuff
device_model = 'qemu-dm'
#-----------------------------------------------------------------------------
# boot on floppy (a), hard disk (c), Network (n) or CD-ROM (d)
...
fpu             : yes
fpu_exception   : yes
cpuid level     : 2
wp              : yes
flags           : fpu de tsc msr pae cx8 apic mtrr cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc up pni
bogomips        : 4746.37
romix:~# cat /proc/cpuinfo > /tmp/romix.cpuinfo
romix:~# exit
logout
Connection to 192.168.15.2 closed.
прошло 36 минут
14:22:53
#scp 192.168.15.2:/tmp/romix.cpuinfo /tmp/
romix.cpuinfo                                 100%  426     0.4KB/s   00:00
14:23:01
#diff /tmp/romix.cpuinfo /proc/cpuinfo
7c7
< cpu MHz               : 1866.674
---
> cpu MHz               : 2327.538
15c15,34
< cpuid level   : 2
---
> cpuid level   : 10
> wp            : yes
> flags         : fpu de tsc msr pae cx8 apic mtrr cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc pni
...
> hlt_bug               : no
> f00f_bug      : no
> coma_bug      : no
> fpu           : yes
> fpu_exception : yes
> cpuid level   : 10
18c37
< bogomips      : 4746.37
---
> bogomips      : 5820.76
/dev/pts/9
14:23:02
#screen -x
/dev/pts/5
14:23:11
#diff /tmp/romix.cpuinfo /proc/cpuinfo | less
14:24:28
#grep ^flags /tmp/romix.cpuinfo
flags           : fpu de tsc msr pae cx8 apic mtrr cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc up pni
14:24:34
#grep ^flags /proc/cpuinfo
flags           : fpu de tsc msr pae cx8 apic mtrr cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc pni
flags           : fpu de tsc msr pae cx8 apic mtrr cmov pat clflush acpi mmx fxsr sse sse2 ss ht nx constant_tsc up pni
14:24:38
#xm list
Name                                        ID   Mem VCPUs      State   Time(s)
Domain-0                                     0   250     2     r-----   2041.6
14:24:49
#man xm
14:26:42
#scp 192.168.15.2:/etc/xen/winxp.hvm /etc/xen/winxp.hvm
winxp.hvm                                     100% 7599     7.4KB/s   00:00
14:27:10
#vi /etc/xen/winxp.hvm
--- /tmp/l3-saved-2554.28759.16639	2008-07-11 11:27:18.000000000 +0000
+++ /etc/xen/winxp.hvm	2008-07-11 11:28:09.000000000 +0000
@@ -66,7 +66,7 @@
 
 #disk = [ 'phy:hda1,hda1,r' ]
 #disk = [ 'file:/var/images/min-el3-i386.img,hda,w', ',hdc:cdrom,r' ]
-disk = [ 'phy:ROMIX/winxp,hda,w', 'file:/mnt/wxp-sp2.iso,hdc:cdrom,r' ]
+disk = [ 'phy:etherd/e2.1,hda,w' ]
 
 #----------------------------------------------------------------------------
 # Configure the behaviour when a domain exits.  There are three 'reasons'
14:28:09
#grep -v ^# /etc/xen/winxp.hvm | grep -xv ''
kernel = "hvmloader"
builder='hvm'
memory = 256
name = "winxp.hvm"
vif = [ 'type=ioemu, mac=00:16:3e:00:00:11, bridge=br0' ]
disk = [ 'phy:etherd/e2.1,hda,w' ]
device_model = 'qemu-dm'
boot="c"
sdl=0
vnc=1
vncpasswd=''
stdvga=0
serial='pty'
usbdevice='tablet'
14:28:23
#aoe-discover
aoe-discover: /dev/etherd/discover does not exist or is not writeable.
14:28:33
#modprobe aoe

14:28:36
#aoe-discover

Статистика

Время первой команды журнала18:46:59 2008- 7-10
Время последней команды журнала14:28:36 2008- 7-11
Количество командных строк в журнале101
Процент команд с ненулевым кодом завершения, %14.85
Процент синтаксически неверно набранных команд, % 0.00
Суммарное время работы с терминалом *, час 1.28
Количество командных строк в единицу времени, команда/мин 1.32
Частота использования команд
vi28|======================| 22.40%
for11|========| 8.80%
do11|========| 8.80%
ssh10|========| 8.00%
vblade8|======| 6.40%
xm7|=====| 5.60%
done7|=====| 5.60%
brctl5|====| 4.00%
scp5|====| 4.00%
screen3|==| 2.40%
bg3|==| 2.40%
grep3|==| 2.40%
ls3|==| 2.40%
ifconfig2|=| 1.60%
diff2|=| 1.60%
less2|=| 1.60%
aoe-discover2|=| 1.60%
vgdisplay2|=| 1.60%
ip2|=| 1.60%
next=192.168.15.12|=| 1.60%
man1|| 0.80%
pkill1|| 0.80%
nc1|| 0.80%
modprobe1|| 0.80%
lvcreate1|| 0.80%
a1|| 0.80%
vol41|| 0.80%
____
*) Интервалы неактивности длительностью 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$