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

Содержание

Журнал

Среда (06/03/09)

/dev/tty1
12:10:54
#ssh 192.168.15.2
Linux linux2 2.6.29-2-686 #1 SMP Sun May 17 17:56:29 UTC 2009 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.
Last login: Wed Jun  3 12:09:43 2009 from linux1.unix.nt
l3-agent is already running: pid=8287; pidfile=/root/.lilalo/l3-agent.pid
/dev/tty1
12:13:12
#vim /root/.bash_profile
--- /tmp/l3-saved-9737.5868.12335	2009-06-03 12:13:15.000000000 +0300
+++ /root/.bash_profile	2009-06-03 12:13:23.000000000 +0300
@@ -8,7 +8,7 @@
 if [ -e ~/.ssh-agent ]
 then
  eval `cat ~/.ssh-agent`
- grep -qx ssh-agent /proc/$SSH_AGENT_PID/cmdline >& /dev/null || load_agent
+ grep -q ssh-agent /proc/$SSH_AGENT_PID/cmdline >& /dev/null || load_agent
 else
  load_agent
 fi
/dev/tty1
12:13:32
#ssh -X 192.168.15.14
Linux linux14 2.6.29-2-686 #1 SMP Sun May 17 17:56:29 UTC 2009 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.
Last login: Wed Jun  3 11:53:00 2009 from linux6.unix.nt
l3-agent is already running: pid=30256; pidfile=/root/.lilalo/l3-agent.pid
/dev/pts/1
12:22:26
#apt-get install oracle
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Couldn't find package oracle
/dev/tty1
12:22:34
#xclock
Error: Can't open display:
/dev/pts/1
12:22:38
#xclock
Error: Can't open display: localhost:10.0
/dev/tty1
12:22:48
#exit
exit
Connection to 192.168.15.14 closed.
/dev/pts/1
12:22:53
#ls /etc/ssh
moduli      sshd_config       ssh_host_dsa_key.pub  ssh_host_rsa_key.pub
ssh_config  ssh_host_dsa_key  ssh_host_rsa_key
/dev/tty1
12:23:17
#xclock
Error: Can't open display:
12:23:22
#iptables-save

/dev/pts/1
12:24:20
#vi sshd_config
12:24:33
#~ +q436f+q6b75+q6b64+q6b72+q6b6c+q2332+q2334+q2569+q2a37+q6b31
 67 #UseLogin no
 68
 69 #MaxStartups 10:30:60
 70 #Banner /etc/issue.net
 71
 72 # Allow client to pass locale environment variables
 73 AcceptEnv LANG LC_*
 74
 75 Subsystem sftp /usr/lib/openssh/sftp-server
 76
 77 UsePAM yes
/dev/tty1
12:31:17
#ssh -f -N -L 11000:192.168.15.1:110 192.168.15.6
root@192.168.15.6's password:
прошло 18 минут
12:49:56
#netstat -lnp
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:9999            0.0.0.0:*               LISTEN      3511/inetd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3218/sshd
tcp        0      0 127.0.0.1:11000         0.0.0.0:*               LISTEN      10529/ssh
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      3485/exim4
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      10045/1
tcp6       0      0 :::80                   :::*                    LISTEN      3636/apache2
tcp6       0      0 :::22                   :::*                    LISTEN      3218/sshd
tcp6       0      0 ::1:11000               :::*                    LISTEN      10529/ssh
tcp6       0      0 ::1:6010                :::*                    LISTEN      10045/1
Active UNIX domain sockets (only servers)
Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Path
unix  2      [ ACC ]     STREAM     LISTENING     9992     3207/dbus-daemon    /var/run/dbus/system_bus_socket
unix  2      [ ACC ]     STREAM     LISTENING     12652    4540/lpd            /dev/printer
unix  2      [ ACC ]     STREAM     LISTENING     10504    3638/apache2        /var/run/apache2/cgisock.3636
unix  2      [ ACC ]     STREAM     LISTENING     32267    9173/ssh-agent      /tmp/ssh-PgrXWA9172/agent.9172
unix  2      [ ACC ]     STREAM     LISTENING     33590    9549/ssh-agent      /tmp/ssh-GGdlzH9548/agent.9548
unix  2      [ ACC ]     STREAM     LISTENING     33937    9687/ssh-agent      /tmp/ssh-lYAguB9686/agent.9686
unix  2      [ ACC ]     STREAM     LISTENING     9968     3197/syslog-ng      /dev/log
12:50:03
#netstat -lnp -A inet
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:9999            0.0.0.0:*               LISTEN      3511/inetd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3218/sshd
tcp        0      0 127.0.0.1:11000         0.0.0.0:*               LISTEN      10529/ssh
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      3485/exim4
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      10045/1
12:50:07
#nc 192.168.15.1 110
+OK Qpopper (version 4.0.9) at linux1.unix.nt starting.  <8574.1244022685@linux1.unix.nt>
^C
12:51:31
#nc 127.0.0.1 110
(UNKNOWN) [127.0.0.1] 110 (pop3) : Connection refused
12:51:42
#nc 127.0.0.1 11000
+OK Qpopper (version 4.0.9) at linux1.unix.nt starting.  <8600.1244022709@linux1.unix.nt>
^[[A^[[A^C
12:52:24
#nc 192.168.15.1 110
+OK Qpopper (version 4.0.9) at linux1.unix.nt starting.  <8681.1244022828@linux1.unix.nt>
^C
прошло 44 минуты
13:37:17
#apt-cache search xfci

13:37:33
#apt-cache search xfce
alltray - Dock any program into the system tray
cameramonitor - Webcam monitoring in system tray
deluge-torrent - A Bittorrent client written in Python/PyGTK
deluge-torrent-common - A Bittorrent client written in Python/PyGTK - common files
desktop-profiles - framework for setting up desktop profiles
gmessage - an xmessage clone based on GTK+
istanbul - Desktop session recorder producing Ogg Theora video
libexo-0.3-0-dbg - debugging informations for libexo
libxfce4mcs-client3 - Client library for Xfce4 configure interface
libxfce4mcs-dbg - debugging informations for libxfce4mcs
...
libxfce4util4 - Utility functions library for Xfce4
xfce4-session - Xfce4 Session Manager
xfwm4 - window manager of the Xfce project
gtk2-engines-xfce - A GTK+-2.0 theme engine for Xfce
libxfce4menu-0.1-0 - freedesktop.org compliant menu implementation for Xfce
libexo-0.3-0 - Library with extensions for Xfce
xfce4-settings - graphical application for managing Xfce settings
xfce4-mixer - Xfce mixer application
libxfconf-0-2 - Client library for Xfce4 configure interface
xfce4-appfinder - Application finder for the Xfce4 Desktop Environment
13:38:02
#apt-cache search xfce|less
13:39:06
#apt-get install xfce
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Couldn't find package xfce
13:39:09
#apt-get install xfce4
Reading package lists... Done
Building dependency tree
Reading state information... Done
xfce4 is already the newest version.
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
After this operation, 0B of additional disk space will be used.
Setting up ed (1.3-3) ...
update-alternatives: error: alternative path /bin/ed doesn't exist.
dpkg: error processing ed (--configure):
 subprocess installed post-installation script returned error exit status 2
Errors were encountered while processing:
 ed
E: Sub-process /usr/bin/dpkg returned an error code (1)
13:39:21
#pgrep l3-agent
3728
13:40:51
#kill -9 3128
bash: kill: (3128) - No such process
13:40:54
#kill -9 3728

13:40:58
#ssh 192.168.15
^C
13:41:07
#ssh 192.168.15.5
Linux linux5 2.6.29-2-686 #1 SMP Sun May 17 17:56:29 UTC 2009 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.
Last login: Wed Jun  3 12:23:16 2009 from linux1.unix.nt
l3-agent is already running: pid=7633; pidfile=/root/.lilalo/l3-agent.pid
13:41:17
#scp quiz@10.0.35.100:~/quiz /root/b
Host key fingerprint is 69:b5:3e:1a:9a:b7:c3:c3:96:03:c7:b7:b4:69:1d:3b
+--[ RSA 2048]----+
|                 |
|                 |
|          .      |
|         o .     |
|       .S .      |
|      ..o.o .    |
|       =.+o= o   |
|       oXo=.E    |
|      ooo*   .   |
+-----------------+
quiz@10.0.35.100's password:
/dev/tty4
13:41:54
#cd

13:41:57
#ls
1     harddisk.img  ip_forwary~    passswd    screen.dot  usaddscript
11    ip_forward~   ip_forwarz~    passswd1   screen.png  vol1
all   ip_forwarw~   iptables-save  samba.dot  scriptall
file  ip_forwarx~   lv-table       samba.png  shtdown
13:41:58
#mkdir new

13:42:03
#pwd
/root
13:42:32
#cd /root/new

/dev/tty1
13:42:40
#scp quiz@10.0.35.100:~/quiz /root/new
Host key fingerprint is 69:b5:3e:1a:9a:b7:c3:c3:96:03:c7:b7:b4:69:1d:3b
+--[ RSA 2048]----+
|                 |
|                 |
|          .      |
|         o .     |
|       .S .      |
|      ..o.o .    |
|       =.+o= o   |
|       oXo=.E    |
|      ooo*   .   |
+-----------------+
quiz@10.0.35.100's password:
TERM environment variable not set.
Can't open -c: Нет такого файла или каталога at /usr/local/bin/quiz line 34.
Can't open scp -f ~/quiz: Нет такого файла или каталога at /usr/local/bin/quiz line 34.
----------------------------------------------------------------------
TERM environment variable not set.
13:42:51
#scp quiz@10.0.35.100:/home/quiz/* /root/new
Host key fingerprint is 69:b5:3e:1a:9a:b7:c3:c3:96:03:c7:b7:b4:69:1d:3b
+--[ RSA 2048]----+
|                 |
|                 |
|          .      |
|         o .     |
|       .S .      |
|      ..o.o .    |
|       =.+o= o   |
|       oXo=.E    |
|      ooo*   .   |
+-----------------+
quiz@10.0.35.100's password:
TERM environment variable not set.
Can't open -c: Нет такого файла или каталога at /usr/local/bin/quiz line 34.
Can't open scp -f /home/quiz/*: Нет такого файла или каталога at /usr/local/bin/quiz line 34.
TERM environment variable not set.
----------------------------------------------------------------------
13:43:13
#ssh 10.0.35.100
Host key fingerprint is 69:b5:3e:1a:9a:b7:c3:c3:96:03:c7:b7:b4:69:1d:3b
+--[ RSA 2048]----+
|                 |
|                 |
|          .      |
|         o .     |
|       .S .      |
|      ..o.o .    |
|       =.+o= o   |
|       oXo=.E    |
...
root@10.0.35.100's password:
Linux linux0 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.
Last login: Wed Jun  3 13:14:39 2009 from linux14.unix.nt
Agent pid 13439
l3-agent is already running: pid=1854; pidfile=/root/.lilalo/l3-agent.pid
13:44:30
#scp 10.0.35.100:/home/quiz/quiz3 /root/new
Host key fingerprint is 69:b5:3e:1a:9a:b7:c3:c3:96:03:c7:b7:b4:69:1d:3b
+--[ RSA 2048]----+
|                 |
|                 |
|          .      |
|         o .     |
|       .S .      |
|      ..o.o .    |
|       =.+o= o   |
|       oXo=.E    |
|      ooo*   .   |
+-----------------+
root@10.0.35.100's password:
scp: /home/quiz/quiz3: not a regular file
13:44:56
#scp 10.0.35.100:/home/quiz/quiz3/* /root/new
Host key fingerprint is 69:b5:3e:1a:9a:b7:c3:c3:96:03:c7:b7:b4:69:1d:3b
+--[ RSA 2048]----+
|                 |
|                 |
|          .      |
|         o .     |
|       .S .      |
|      ..o.o .    |
|       =.+o= o   |
|       oXo=.E    |
...
192.168.15.16-1243688014.log                  100%   26KB  25.7KB/s   00:00
192.168.15.2-1243688037.log                   100%   26KB  25.7KB/s   00:00
192.168.15.253-1243688231.log                 100%   26KB  25.6KB/s   00:00
192.168.15.3-1243688017.log                   100%   26KB  25.7KB/s   00:00
192.168.15.4-1243688036.log                   100%   26KB  25.7KB/s   00:00
192.168.15.5-1243688193.log                   100%   26KB  25.7KB/s   00:00
192.168.15.6-1243688038.log                   100%   26KB  25.7KB/s   00:00
192.168.15.7-1243688056.log                   100%   26KB  25.7KB/s   00:00
192.168.15.8-1243688088.log                   100%   26KB  25.7KB/s   00:00
192.168.15.9-1243688025.log                   100%   26KB  25.7KB/s   00:00
13:45:06
#cd /root/new
bash: cd: /root/new: Это не каталог
13:45:29
#cd /root

13:45:32
#ls
a  etc.iso  flash  new  screen.dot  screen.png  vimrc
13:45:33
#cat new
 суммы установленных в системе deb-пакетов?
 1. apt-get
 2. debsum
 3. dpkg
 4. sumdeb
 5. md5dev
 6. bc
 7. debmd5
 8. cat
@1243690202
...
 У вас есть сто пакетов в текущем каталоге,
 которые вы хотите добавить в кэш approx.
 Можно ли это как-то сделать?
 1. Да, для этого просто достаточно скопировать все пакеты в кэш
 2. Да, для этого есть специальная программа approx-import
 3. Нет, нельзя
 4. Эти пакеты уже всё равно обновились, и вообще, что за вопросы? Вы в кэш сквида картинки тоже добавляете?
@1243690680
#40
--- 3 (2)
13:45:36
#cat new|less
13:46:09
#rm new

13:46:37
#mkdir new

13:46:41
#scp 10.0.35.100:/home/quiz/quiz3/* /root/new/
Host key fingerprint is 69:b5:3e:1a:9a:b7:c3:c3:96:03:c7:b7:b4:69:1d:3b
+--[ RSA 2048]----+
|                 |
|                 |
|          .      |
|         o .     |
|       .S .      |
|      ..o.o .    |
|       =.+o= o   |
|       oXo=.E    |
...
192.168.15.16-1243688014.log                  100%   26KB  25.7KB/s   00:00
192.168.15.2-1243688037.log                   100%   26KB  25.7KB/s   00:00
192.168.15.253-1243688231.log                 100%   26KB  25.6KB/s   00:00
192.168.15.3-1243688017.log                   100%   26KB  25.7KB/s   00:00
192.168.15.4-1243688036.log                   100%   26KB  25.7KB/s   00:00
192.168.15.5-1243688193.log                   100%   26KB  25.7KB/s   00:00
192.168.15.6-1243688038.log                   100%   26KB  25.7KB/s   00:00
192.168.15.7-1243688056.log                   100%   26KB  25.7KB/s   00:00
192.168.15.8-1243688088.log                   100%   26KB  25.7KB/s   00:00
192.168.15.9-1243688025.log                   100%   26KB  25.7KB/s   00:00
13:46:47
#cd new

13:46:50
#ls
192.168.15.10-1243688058.log  192.168.15.253-1243688231.log
192.168.15.11-1243688015.log  192.168.15.3-1243688017.log
192.168.15.1-1243688040.log   192.168.15.4-1243688036.log
192.168.15.12-1243688039.log  192.168.15.5-1243688193.log
192.168.15.13-1243688017.log  192.168.15.6-1243688038.log
192.168.15.14-1243688128.log  192.168.15.7-1243688056.log
192.168.15.15-1243688022.log  192.168.15.8-1243688088.log
192.168.15.16-1243688014.log  192.168.15.9-1243688025.log
192.168.15.2-1243688037.log
13:46:51
#cat 192.168.15.13-1243688017.log |less
13:49:48
#rm /root/new/*

13:50:06
#ls
quiz
13:50:09
#cat quiz
# 0.1 час
После того как crontab был изменён, для того чтобы его перечитать,
нужно ли перезапускать cron, и если нужно, то как?
# /etc/init.d/crond restart
# /etc/init.d/crontab restart
# /etc/init.d/crontab reload
# pkill -1 cron
# pkill -1 crond
#! Нет, не нужно перезапускать, crontab и так перечитывается
Что обозначает символ % в команде в crontab?
...
# strace `which prg`
#! ldd `which prg`
# strings `which prg'
# strace 'which prg'
Как получить полный список файлов, которые процесс 1234 открывает в ходе своей работы
(не только, которые открыты сейчас).
#! strace -p 1234 -o /tmp/1234.strace; grep open /tmp/1234.strace
#* lsof -p 1234
# strings `which 1234`
# strings 'which 1234'
13:50:12
#rm *

13:50:18
#exit
exit
Connection to 192.168.15.5 closed.
13:50:25
#scp quiz@10.0.35.100:/home/quiz/quiz | ssh 192.168.15.5
usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2
l3-agent is already running: pid=7633; pidfile=/root/.lilalo/l3-agent.pid
13:52:55
#ssh 192.168.15.5 'scp quiz@10.0.35.100:/home/quiz/quiz'
usage: scp [-1246BCpqrv] [-c cipher] [-F ssh_config] [-i identity_file]
           [-l limit] [-o ssh_option] [-P port] [-S program]
           [[user@]host1:]file1 ... [[user@]host2:]file2
13:54:51
#cd /home/new
bash: cd: /home/new: Нет такого файла или каталога
13:55:05
#cd /root/new

13:55:16
#ls

/dev/tty4
13:55:31
#ls

13:55:32
#cd

/dev/tty1
13:56:12
#"scp quiz@10.0.35.100:/home/quiz/quiz"

/dev/tty1
13:56:21
#exit
exit
Connection to 192.168.15.2 closed.
/dev/tty1
13:56:45
#l3 on
switching on
13:56:51
#l3-agent
Removing stale pidfile
13:57:01
#l3-agent
l3-agent is already running: pid=11798; pidfile=/root/.lilalo/l3-agent.pid
13:57:06
#less /var/log/auth.log
13:57:30
#ssh 192.168.15.2
Linux linux2 2.6.29-2-686 #1 SMP Sun May 17 17:56:29 UTC 2009 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.
Last login: Wed Jun  3 12:29:11 2009 from linux5.unix.nt
l3-agent is already running: pid=8287; pidfile=/root/.lilalo/l3-agent.pid
13:57:44
#ls -l
итого 3324
drwxr-xr-x 2 root root    4096 Май 25 16:40 17179869184
drwxr-xr-x 2 root root    4096 Май 25 16:40 345448
drwxr-xr-x 2 root root    4096 Май 25 16:40 345789358
-rw-r--r-- 1 root root       0 Май 29 14:52 ABCABCf
-rw-r--r-- 1 root root       0 Май 29 14:50 ABCABC:gff
-rw-r--r-- 1 root root       0 Май 29 14:50 ABCfff
drwxr-xr-x 2 root root    4096 Июн  3 11:51 bin
-rw-r--r-- 1 root root 3024896 Июн  1 10:34 etc.iso
-rw-r--r-- 1 root root       0 Май 26 18:22 F
...
-rw-r--r-- 1 root root       0 Май 26 18:22 F.7
-rw-r--r-- 1 root root       0 Май 26 18:22 F.8
-rw-r--r-- 1 root root       0 Май 26 18:22 F.9
-rw-r--r-- 1 root root       0 Май 29 14:50 ffff
-rw-r--r-- 1 root root       0 Май 29 14:52 fffffff
-rw-r--r-- 1 root root      12 Май 25 14:47 file
-rw-r--r-- 1 root root   54606 Май 29 10:24 iceweasel.dot
-rw-r--r-- 1 root root      12 Май 25 14:47 last-ping
-rw-r--r-- 1 root root    4737 Май 29 10:19 screen.dot
-rw-r--r-- 1 root root  271894 Май 29 10:20 screen.png
13:57:49
#ls -l|less
13:57:55
#netstat -lnp -A inet
Active Internet connections (only servers)
Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name
tcp        0      0 0.0.0.0:9999            0.0.0.0:*               LISTEN      3511/inetd
tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      3218/sshd
tcp        0      0 127.0.0.1:11000         0.0.0.0:*               LISTEN      10529/ssh
tcp        0      0 127.0.0.1:25            0.0.0.0:*               LISTEN      3485/exim4
tcp        0      0 127.0.0.1:6010          0.0.0.0:*               LISTEN      10045/1
13:57:59
#cd /home

13:58:05
#ls
approx  quiz  user  user1  user2  user3  userX  userY
13:58:06
#cd quiz

13:58:09
#ls
quiz  quiz2  quiz3  start-quiz
13:58:10
#exit
exit
Connection to 10.0.35.100 closed.
/dev/tty4
13:58:13
#ls
1     harddisk.img  ip_forwary~    new        samba.png   shtdown
11    ip_forward~   ip_forwarz~    passswd    screen.dot  usaddscript
all   ip_forwarw~   iptables-save  passswd1   screen.png  vol1
file  ip_forwarx~   lv-table       samba.dot  scriptall
13:58:14
#ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.0   2128   720 ?        Ss   09:19   0:01 init [2]
root         2  0.0  0.0      0     0 ?        S<   09:19   0:00 [kthreadd]
root         3  0.0  0.0      0     0 ?        S<   09:19   0:00 [migration/0]
root         4  0.0  0.0      0     0 ?        S<   09:19   0:00 [ksoftirqd/0]
root         5  0.0  0.0      0     0 ?        S<   09:19   0:00 [watchdog/0]
root         6  0.0  0.0      0     0 ?        S<   09:19   0:00 [migration/1]
root         7  0.0  0.0      0     0 ?        S<   09:19   0:00 [ksoftirqd/1]
root         8  0.0  0.0      0     0 ?        S<   09:19   0:00 [watchdog/1]
root         9  0.0  0.0      0     0 ?        S<   09:19   0:00 [cpuset]
...
root      9790  0.0  0.0   3836   560 tty1     S+   12:13   0:00 script -f -c ba
root      9830  0.0  0.0   3840   464 tty1     S+   12:13   0:00 script -f -c ba
root      9831  0.0  0.1   6412  3164 pts/0    Ss+  12:13   0:00 bash
root     10045  0.0  0.1   8756  3116 ?        Ss   12:22   0:00 sshd: root@pts/
root     10049  0.0  0.0   3836   564 pts/1    Ss+  12:22   0:00 script -f -c ba
root     10090  0.0  0.0   3840   468 pts/1    S+   12:22   0:00 script -f -c ba
root     10091  0.0  0.1   6400  3120 pts/2    Ss+  12:22   0:00 bash
root     10529  0.0  0.0   5284  1048 ?        Ss   12:49   0:00 ssh -f -N -L 11
root     11798 31.8  0.2  10892  6860 ?        Ss   13:57   0:28 l3-agent
root     11881  0.0  0.0   4544  1060 pts/3    R+   13:58   0:00 ps aux
13:58:30
#ps aux|less
13:58:59
#kill -9 11798

13:59:07
#ps aux|less
13:59:17
#ps aux|grep l3-ag
root     11927  0.0  0.0   3952   736 pts/3    R+   13:59   0:00 grep l3-ag
13:59:25
#ps aux|grep l3-agent

13:59:34
#ps aux|grep l3-agent
root     11945  0.0  0.0   3952   732 pts/3    R+   13:59   0:00 grep l3-agent
13:59:36
#vim freedom
--- /dev/null	2009-06-03 09:19:57.504195778 +0300
+++ freedom	2009-06-03 14:01:39.000000000 +0300
@@ -0,0 +1,8 @@
+#!/bin/sh
+ssh 192.168.15.5
+echo "rootpass"
+scp quiz@10.0.35.100:/home/quiz/quiz /root/
+echo "rootpass"
+exit
+exit
+
/dev/tty1
14:01:32
#ls /home/quiz
quiz  quiz2  quiz3  start-quiz
14:01:39
#cat start-quiz
cat: start-quiz: Нет такого файла или каталога
/dev/tty4
14:01:39
#freedom
bash: freedom: command not found
14:01:43
#./freedom
bash: ./freedom: Permission denied
/dev/tty1
14:01:47
#cd start-quiz
bash: cd: start-quiz: Нет такого файла или каталога
14:01:54
#cat /home/quiz/start-quiz
#!/usr/bin/perl
$id = $ENV{"SSH_CLIENT"};
$id = (split(/\s+/, $id))[0];
if ($id) { $id .= "-"};
$quiz_file = "quiz";
$log_file = ".quiz/$id".time().'.log';
@Questions = ();
$Score = 0;
sub ask_question($)
{
...
    }
    else {
        $question .= $_;
    };
}
close(QUIZ);
for $question (@Questions) {
    $Score += ask_question($question);
}
print "Your score: $Score\n";
/dev/tty4
14:01:54
#chmod +x freedom

14:02:01
#./freedom
Enter passphrase for key '/root/.ssh/id_dsa':
Linux linux5 2.6.29-2-686 #1 SMP Sun May 17 17:56:29 UTC 2009 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.
Last login: Wed Jun  3 13:54:51 2009 from linux13.unix.nt
l3-agent is already running: pid=7633; pidfile=/root/.lilalo/l3-agent.pid
14:02:06
#cd /root

/dev/tty1
14:02:08
#cat /home/quiz/start-quiz|less
/dev/tty4
14:02:15
#ls
a  etc.iso  flash  new  screen.dot  screen.png  vimrc
14:02:16
#find / -name quiz
/home/quiz
14:02:51
#cd /home

14:02:55
#ls
aaron  ada  dom  quiz  user  user1  user2  uuu

Файлы

  • /home/quiz/start-quiz
  • new
  • quiz
  • /home/quiz/start-quiz
    >
    #!/usr/bin/perl
    $id = $ENV{"SSH_CLIENT"};
    $id = (split(/\s+/, $id))[0];
    if ($id) { $id .= "-"};
    $quiz_file = "quiz";
    $log_file = ".quiz/$id".time().'.log';
    @Questions = ();
    $Score = 0;
    sub ask_question($)
    {
        my $question = $_[0];
        my %answer_score;
        $i=1;
        $question =~ s{^(#!?)}{$1 eq '#!' and $answer_score{$i}=1;$i++}gme;
        print $question;
        $answer=<>;
        chomp $answer;
        open(LOG, ">>$log_file")
            or die "Can't open $log_file for writing";
        print LOG $question;
        if ($answer_score{$answer}) {
            print LOG "+++ (", $answer,")\n";
        }
        else {
            print LOG "--- (", join(" ", sort(keys(%answer_score))), ")\n";
        }
        close(LOG);
        return $answer_score{$answer};
    }
    open(QUIZ, $quiz_file);
    $question="";
    while(<QUIZ>)
    {
        s/<!--.*-->//g;
        if (/^\s*$/) {
            if ($question) {
                push @Questions, $question;
                $question = "";
            }
        }
        else {
            $question .= $_;
        };
    }
    close(QUIZ);
    for $question (@Questions) {
        $Score += ask_question($question);
    }
    print "Your score: $Score\n";
    
    new
    >
     суммы установленных в системе deb-пакетов?
     1. apt-get
     2. debsum
     3. dpkg
     4. sumdeb
     5. md5dev
     6. bc
     7. debmd5
     8. cat
    @1243690202
    #40
    +++ 2
     Какой командой вы установите пакет packaka, находящийся в репозитории Debian ,
     если ему для работы необходимы другие пакеты, а их нет в системе.
     1. apt-get install packaka
     2. apt-install get packaka
     3. apt-recursive install packaka
     4. dpkg -i packaka
     5. dpkg -I packaka
     6. Так нельзя сделать, сначала надо установить недостающие пакеты
    @1243690220
    #40
    +++ 1
     Как называются три основных компонента (части всего множества пакетов) дистрибутива Debian, прописываемые в
     файл /etc/apt/sources.list после названия дистрибутива?
     1. main, free, non-free
     2. main, additional, commercial
     3. main, contrib, non-free
     4. main, helpers, proprietary
     5. universe, multiverse
     6. sarge, etch, lenny
    @1243690330
    #40
    +++ 3
     Какой командой выполнить поиск пакетов в репозитории,
     если известно приблизительное описание этого пакета?
     1. apt-cache search
     2. apt-search
     3. apt-get search
     4. apt-file search
     5. dpkg -S
     6. poogle
    @1243690341
    #40
    +++ 1
     Вы установили пакет a, который зависит от пакетов b и e.
     А пакет b, в свою очередь, зависит от с, который зависит от d.
     a
     |-- b
     |   `-- c
     |       `-- d
     `-- e
     Установку вы выполняли с помощью команды apt-get install,
     и все необходимые пакеты были добавлены в систему автоматически.
     Потом вы поняли, что a это не совсем то, что нужно, и удалили его
     при помощи команды apt-get remove a.
     Будут ли удалены пакеты b,c,d,e, который были установлены
     как зависимости?
     1. Это зависит от того, использует ли их кто-то ещё. Если не использует, то будут
     2. Только если потом вызвать apt-get autoremove, иначе нет
     3. Будут, но без конфигурационных файлов (файлы останутся)
     4. Будут, причём вместе с конфигурационным файлами (файлы будут удалены)
    @1243690366
    #40
    +++ 2
     У вас был установлен пакет pkg с каким-то конфигурационным файлом внутри этого пакета
     (состояние A).  Потом вы поправили этот конфигурационный
     файл (состояние B). После чего, спустя некоторое время
     вы обновили пакет pkg. В новом пакете тоже есть этот конфигурационный файл (состояние C).
     Если состояние A = C, то есть конфигурационный файл в пакете новой версии
     не изменился, то в каком состоянии после обновления пакета будет файл в системе ?
     1. A
     2. B
     3. C
     4. Пользователя спросят при инсталляции, какой выбрать
     5. Останутся B и C (C будет сохранён с новым именем)
     6. Останутся B и C (B будет переименован)
    @1243690462
    #40
    --- 3 (2)
     Вы хотите проинсталлировать свежую Debian-систему в
     каталог /mnt на жёстком диске.
     Какой командой это можно сделать?
     1. apt-get install
     2. install
     3. grub-install
     4. debinstall
     5. deboostrap
     6. Нет такой команды
    @1243690473
    #40
    +++ 5
     Вы хотите доустановить в систему, установленную при помощи deboostrap
     внутрь каталога /mnt, пакеты screen, less и udev. Как это можно сделать?
     1. chroot /mnt deboostrap screen,less,udev
     2. dpkg -i screen,less,udev -t /mnt
     3. chroot /mnt; apt-get install screen less udev
     4. chroot /mnt apt-get install screen less udev
     5. cd /mnt; deboostrap screen,less,udev
     6. cd /mnt; apt-get install screen less udev
    @1243690525
    #40
    +++ 3
     Вы сидите на debian-unstable и хотите обновить программу screen.
     Вы дали команду apt-get update для обновления списка пакетов
     в репозитории. Теперь, для того чтобы обновить пакет, вы дадите команду:
     1. apt-get unstable screen
     2. apt-update screen
     3. apt-get update screen
     4. apt-get install screen
     5. apt-cache upgrade screen
     6. dpkg -U screen
     7. rpm -F screen
    @1243690562
    #40
    --- 5 (4)
     Какая программа может использоваться в качестве
     сервера-посредника для доступа клиентов к apt-репозиторию?
     1. apt-gateway
     2. apt-ldap
     3. apt-get
     4. arp-cache
     5. apt-cache
     6. arp-proxy
     7. approx
    @1243690581
    #40
    +++ 7
     У вас есть сто пакетов в текущем каталоге,
     которые вы хотите добавить в кэш approx.
     Можно ли это как-то сделать?
     1. Да, для этого просто достаточно скопировать все пакеты в кэш
     2. Да, для этого есть специальная программа approx-import
     3. Нет, нельзя
     4. Эти пакеты уже всё равно обновились, и вообще, что за вопросы? Вы в кэш сквида картинки тоже добавляете?
    @1243690680
    #40
    --- 3 (2)
    
    quiz
    >
    # 0.1 час
    После того как crontab был изменён, для того чтобы его перечитать,
    нужно ли перезапускать cron, и если нужно, то как?
    # /etc/init.d/crond restart
    # /etc/init.d/crontab restart
    # /etc/init.d/crontab reload
    # pkill -1 cron
    # pkill -1 crond
    #! Нет, не нужно перезапускать, crontab и так перечитывается
    Что обозначает символ % в команде в crontab?
    # То же, что символ * в обычной командной строке
    # Самого себя (то есть %)
    # Ðо выполняется задача
    #! Перевод строки
    # Время выполнения задачи
    Есть запись в файле /etc/crontab:
    */2 * * * * * root date > /tmp/date
    Что будет делать эта запись?
    # Будет каждую вторую минуту дописывать текущее время в файл /tmp/date
    # Будет каждую минуту записывать текущее время в файл /tmp/date
    # Будет каждые полминуты дописывать текущее время в файл /tmp/date
    # Будет каждую вторую минуту записывать текущее время в файл /tmp/date
    # Будет каждые полминуты записывать текущее время в файл /tmp/date
    #! Не будет работать
    Зачем используется программа anacron?
    # Для выполнения повторяющихся, но апериодических действий
    #! Для выполнения повторяющихся действий в системах, которые периодически выключаются
    # Для того же, для чего и cron, только с более точными временными интервалами
    # Это более старая версия cron, которая не используется в современных системах
    # Это cron, который не требует прав root'а для исполнения
    Как выполнить команду iptables -F через 60 минут?
    # echo iptables -F | at +60
    # echo iptables -F | at +3600
    # echo iptables -F | at now+3600
    # echo iptables -F | at now + 3600
    #! echo iptables -F | at now + 60 minutes
    # echo iptables -F | at now + 60 mins
    # echo iptables -F | at now+60m
    Если вы хотите, чтобы команда k1 выполнялась каждые 30 секунд,
    какую запись вы добавите в /etc/crontab, при условии,
    что команда требует для своего выполнения от 10 до 15 секунд.
    # * * * * * root k1& sleep 30& k1
    #! * * * * * root k1& sleep 30; k1
    # * * * * * root k1; sleep 30& k1
    # * * * * * root k1; sleep 30; k1
    # * * * * * root k1& sleep 30& k1
    # Так сделать нельзя, потому что crontab может выполнять команды только с минимальным интервалом 60 секунд
    Вы (пользователь user) написали чудо-скрипт /usr/local/bin/wonder-greetings
    и хотите чтобы он выполнялся из cron'а.
    Вы хотите чтобы он приветствовал ваших друзей (jid'ы которых перечислены через пробел в файле
    /home/user/my-friend) с утра и желал им счастья и здоровья.
    Для этого у пользователя root вы настроили программу sendxmpp и
    добавили в /etc/crontab такую запись:
        8 10 * * * root wonder-greetings | sendxmpp `cat /home/user/my-friends`
    Остальной /etc/crontab вы не трогали и все записи оставили в том виде, в каком они находятся
    по умолчанию.
    Что произойдёт?
    # Каждый день в 8:10 друзьям будет рассылаться по джабберу приветствие
    # Каждый день 10:08 друзьям будет рассылаться по джабберу приветствие
    #! Ничего, не будет это работать, cron не найдёт скрипт
    # Ничего, не будет это работать, нельзя использовать символ ` в командах cron
    <!--30-->
    На какую ситуацию из программного мира похожа
    ситуация, когда на перекрёстке машины
    перегородили дорогу друг другу, и никто не может сдвинуться,
    потому что ему мешает другая машина. И так по кругу.
    # fstat
    # fileblock
    # superblock
    #! deadlock
    # inode
    # timeout
    Вы запускаете программу vipw, а она подвисает.
    Вы предполагаете, что она это делает из-за того,
    что ждёт, что другой процесс отпустит блокировку,
    которая ей нужна.
    С помощью какой программы можно в этом убедиться
    или это опровергнуть?
    #! strace
    # lsof
    # sockstat
    # lockstat
    # fstat
    # fuser
    Что позволяет отследить программа strace?
    # Ðые системные вызовы
    # Набор системных интерфейсов, через которые проходят данные, прежде чем попасть на жёсткий диск
    # Открытия конфигурационных файлов
    # Обращения к модулям ядра
    Что такое системный вызов?
    #! Обращение процесса к ядру, когда у него у самого не хватает полномочий на выполнение какой-то операции
    # Вызов обычным процессом процесса-демона
    # Ð# Обращение к программной библиотеке
    Можно ли подключиться к работающему процессу и посмотреть, что он делает?
    # Нет, нельзя, для этого нужно останавливать процесс
    #! Да, можно; для этого нужно использовать strace
    # Да, можно; для этого нужно использовать ldconfig
    # Да, можно; для этого нужно использовать lsof
    # Да, можно; для этого нужно использовать ld
    Какой программой просмотреть список открытых файлов?
    # fuser
    # fstat
    #! lsof
    # sockstat
    # vmstat
    #* ls -l /proc/*/fd | awk "[print $11}"
    Как посмотреть список открытых файлов в определённом каталоге /dir?
    # fuser /dir
    # ldof /dir
    #! lsof | grep /dir
    # lsof +/dir
    Как просмотреть среду окружения процесса 1234?
    #! cat /proc/1234/environ | tr '\0' \n'
    # env -p 1234
    # strace -p 1234 | grep env
    # cat /proc/1234/mem | grep env
    # Просмотреть среду окружения процесса нельзя, потому что это закрытая информация
    Как посмотреть, какие библиотеки использует программа prg?
    # ldd 'which prg'
    # strings `which prg`
    # strace `which prg`
    #! ldd `which prg`
    # strings `which prg'
    # strace 'which prg'
    Как получить полный список файлов, которые процесс 1234 открывает в ходе своей работы
    (не только, которые открыты сейчас).
    #! strace -p 1234 -o /tmp/1234.strace; grep open /tmp/1234.strace
    #* lsof -p 1234
    # strings `which 1234`
    # strings 'which 1234'
    

    Статистика

    Время первой команды журнала12:10:54 2009- 6- 3
    Время последней команды журнала14:02:55 2009- 6- 3
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %22.77
    Процент синтаксически неверно набранных команд, % 0.99
    Суммарное время работы с терминалом *, час 1.12
    Количество командных строк в единицу времени, команда/мин 1.50
    Частота использования команд
    ls15|=============| 13.39%
    cd13|===========| 11.61%
    ssh9|========| 8.04%
    less8|=======| 7.14%
    scp7|======| 6.25%
    cat7|======| 6.25%
    ps6|=====| 5.36%
    nc4|===| 3.57%
    exit4|===| 3.57%
    xclock3|==| 2.68%
    freedom3|==| 2.68%
    rm3|==| 2.68%
    netstat3|==| 2.68%
    apt-get3|==| 2.68%
    grep3|==| 2.68%
    kill3|==| 2.68%
    apt-cache3|==| 2.68%
    mkdir2|=| 1.79%
    l3-agent2|=| 1.79%
    vim2|=| 1.79%
    l31|| 0.89%
    pgrep1|| 0.89%
    pwd1|| 0.89%
    chmod1|| 0.89%
    "scp1|| 0.89%
    iptables-save1|| 0.89%
    vi1|| 0.89%
    ~1|| 0.89%
    find1|| 0.89%
    ____
    *) Интервалы неактивности длительностью 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$