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

Содержание

Журнал

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

/dev/pts/9
13:35:12
#nc --?
nc: invalid option -- '-'
nc -h for help
13:35:19
#man nc
/dev/pts/20
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:
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 *

/dev/pts/20
13:54:51
#cd /home/new
bash: cd: /home/new: Нет такого файла или каталога
13:55:05
#cd /root/new

13:55:16
#ls

/dev/pts/20
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: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/pts/9
13:58:58
#exit
192.168.15.2: exit
Connection to 192.168.15.2 closed.
192.168.15.3: Linux linux3 2.6.29-2-686 #1 SMP Sun May 17 17:56:29 UTC 2009 i686
192.168.15.3:
192.168.15.3: The programs included with the Debian GNU/Linux system are free software;
192.168.15.3: the exact distribution terms for each program are described in the
192.168.15.3: individual files in /usr/share/doc/*/copyright.
192.168.15.3:
192.168.15.3: Debian GNU/Linux comes with ABSOLUTELY NO WARRANTY, to the extent
192.168.15.3: permitted by applicable law.
192.168.15.3: Last login: Wed Jun  3 10:58:16 2009 from linux5.unix.nt
192.168.15.3:
192.168.15.3: l3-agent is already running: pid=3235; pidfile=/root/.lilalo/l3-agent.pid
/dev/pts/20
14:01:32
#ls /home/quiz
quiz  quiz2  quiz3  start-quiz
14:01:39
#cat start-quiz
cat: start-quiz: Нет такого файла или каталога
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/pts/20
14:02:06
#cd /root

/dev/pts/20
14:02:08
#cat /home/quiz/start-quiz|less
/dev/pts/20
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
14:02:57
#cd quiz

/dev/pts/20
14:02:59
#cat /home/quiz
cat: /home/quiz: Это каталог
/dev/pts/20
14:02:59
#ls

14:03:00
#cd ..

14:03:04
#rm -R quiz

/dev/pts/20
14:03:07
#cat /home/quiz/
.bash_history  .hushlogin.10  .hushlogin.6   quiz           .ssh/
.bash_logout   .hushlogin.2   .hushlogin.7   .quiz/         start-quiz
.bashrc        .hushlogin.3   .hushlogin.8   .quiz1/        .viminfo
.hushlogin     .hushlogin.4   .hushlogin.9   quiz2/
.hushlogin.1   .hushlogin.5   .profile       quiz3/
14:03:07
#cat /home/quiz/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'
/dev/pts/20
14:03:09
#ls
aaron  ada  dom  user  user1  user2  uuu
/dev/pts/20
14:03:17
#exit
exit
Connection to 10.0.35.100 closed.
/dev/pts/9
14:06:01
#ssh -w 192.168.16.1:192.168.16.2 -N -f 192.168.15.1
Bad tun device '192.168.16.1:192.168.16.2'
прошло 13 минут
14:19:04
#ssh -w 0 -N -f 192.168.15.1
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@    WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED!     @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
IT IS POSSIBLE THAT SOMEONE IS DOING SOMETHING NASTY!
Someone could be eavesdropping on you right now (man-in-the-middle attack)!
It is also possible that the RSA host key has just been changed.
The fingerprint for the RSA key sent by the remote host is
54:b6:4e:a0:18:a4:c1:b1:8f:f5:64:59:31:ba:63:f5.
Please contact your system administrator.
Add correct host key in /root/.ssh/known_hosts to get rid of this message.
Offending key in /root/.ssh/known_hosts:7
RSA host key for 192.168.15.1 has changed and you have requested strict checking.
Host key verification failed.
14:20:22
#cd /tmp/; ssh linux1 tar c /etc | tar x
The authenticity of host 'linux1 (192.168.15.1)' can't be established.
RSA key fingerprint is 54:b6:4e:a0:18:a4:c1:b1:8f:f5:64:59:31:ba:63:f5.
+--[ RSA 2048]----+
| .ooo   =.o      |
|  .+ o = = .     |
|  o o * o o      |
|   + + + +       |
|  . . = S E      |
|     . .         |
|                 |
...
+-----------------+
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'linux1' (RSA) to the list of known hosts.
Warning: the RSA host key for 'linux1' differs from the key for the IP address '192.168.15.1'
Offending key for IP in /root/.ssh/known_hosts:7
Are you sure you want to continue connecting (yes/no)? yes
root@linux1's password:
Permission denied, please try again.
root@linux1's password:
tar: Удаляется начальный `/' из имен объектов
прошло 15 минут
14:35:37
#ssh-keygen -p -f ~/.ssh/id_dsa
Key has comment '/root/.ssh/id_dsa'
Enter new passphrase (empty for no passphrase):
Enter same passphrase again:
Pass phrases do not match.  Try again.
14:38:45
#rsync -au linux2:/etc/ etc/
bash: rsync: команда не найдена
14:39:18
#apt-get install rsync
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
НОВЫЕ пакеты, которые будут установлены:
  rsync
обновлено 0, установлено 1 новых пакетов, для удаления отмечено 0 пакетов, и 54 пакетов не обновлено.
Необходимо скачать 333kБ архивов.
После данной операции, объём занятого дискового пространства возрастёт на 614kB.
Получено:1 http://10.0.35.1 sid/main rsync 3.0.5-1 [333kB]
Получено 333kБ за 0s (10,6MБ/c)
Выбор ранее не выбранного пакета rsync.
(Чтение базы данных ... на данный момент установлено 49040 файлов и каталогов.)
Распаковывается пакет rsync (из файла .../rsync_3.0.5-1_i386.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет rsync (3.0.5-1) ...
14:39:51
#rsync --help
rsync  version 3.0.5  protocol version 30
Copyright (C) 1996-2008 by Andrew Tridgell, Wayne Davison, and others.
Web site: http://rsync.samba.org/
Capabilities:
    64-bit files, 64-bit inums, 32-bit timestamps, 64-bit long ints,
    socketpairs, hardlinks, symlinks, IPv6, batchfiles, inplace,
    append, ACLs, xattrs, iconv, symtimes
rsync comes with ABSOLUTELY NO WARRANTY.  This is free software, and you
are welcome to redistribute it under certain conditions.  See the GNU
General Public Licence for details.
...
     --read-batch=FILE       read a batched update from FILE
     --protocol=NUM          force an older protocol version to be used
     --iconv=CONVERT_SPEC    request charset conversion of filenames
 -4, --ipv4                  prefer IPv4
 -6, --ipv6                  prefer IPv6
     --version               print version number
(-h) --help                  show this help (-h works with no other options)
Use "rsync --daemon --help" to see the daemon-mode command-line options.
Please see the rsync(1) and rsyncd.conf(5) man pages for full documentation.
See http://rsync.samba.org/ for updates, bug reports, and answers
14:40:44
#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 11:39:04 2009 from linux13.unix.nt
l3-agent is already running: pid=8287; pidfile=/root/.lilalo/l3-agent.pid
14:40:49
#eval `ssh-agent`
Agent pid 18750
14:41:09
#ssh-add
Identity added: /root/.ssh/id_dsa (/root/.ssh/id_dsa)
14:41:32
#echo $SSH_

/dev/pts/20
14:41:32
#cat /etc/passwd
root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/bin/sh
bin:x:2:2:bin:/bin:/bin/sh
sys:x:3:3:sys:/dev:/bin/sh
sync:x:4:65534:sync:/bin:/bin/sync
games:x:5:60:games:/usr/games:/bin/sh
man:x:6:12:man:/var/cache/man:/bin/sh
lp:x:7:7:lp:/var/spool/lpd:/bin/sh
mail:x:8:8:mail:/var/mail:/bin/sh
news:x:9:9:news:/var/spool/news:/bin/sh
...
bea:x:1019:1019::/home/bea:/bin/sh
beckie:x:1020:1020::/home/beckie:/bin/sh
becky:x:1021:1021::/home/becky:/bin/sh
behdad:x:1022:1022::/home/behdad:/bin/sh
belinda:x:1023:1023::/home/belinda:/bin/sh
ben:x:1024:1024::/home/ben:/bin/sh
benjamin:x:1025:1025::/home/benjamin:/bin/sh
benny:x:1026:1026::/home/benny:/bin/sh
benson:x:1027:1027::/home/benson:/bin/sh
bernard:x:1028:1028::/home/bernard:/bin/sh
/dev/pts/9
14:42:28
#ps aux | grep ssh-agent
user      3297  0.0  0.0   4888   632 ?        Ss   09:29   0:00 /usr/bin/ssh-agent /usr/bin/dbus-launch --exit-with-session x-session-manager
root     18750  0.0  0.0   4888   772 ?        Ss   11:41   0:00 ssh-agent
root     18774  0.0  0.0   3216   784 pts/15   S+   11:42   0:00 grep ssh-agent
14:42:48
#ssh-add -l
1024 03:a1:14:e7:85:f0:12:9e:81:b1:ae:ea:6d:74:d0:a2 /root/.ssh/id_dsa (DSA)
14:44:38
#apt-get install openvpn
Чтение списков пакетов... Готово
Построение дерева зависимостей
Чтение информации о состоянии... Готово
Будут установлены следующие дополнительные пакеты:
  libpkcs11-helper1 openvpn-blacklist
Предлагаемые пакеты:
  resolvconf
НОВЫЕ пакеты, которые будут установлены:
  libpkcs11-helper1 openvpn openvpn-blacklist
обновлено 0, установлено 3 новых пакетов, для удаления отмечено 0 пакетов, и 54 пакетов не обновлено.
...
Распаковывается пакет libpkcs11-helper1 (из файла .../libpkcs11-helper1_1.07-1_i386.deb)...
Выбор ранее не выбранного пакета openvpn-blacklist.
Распаковывается пакет openvpn-blacklist (из файла .../openvpn-blacklist_0.3_all.deb)...
Выбор ранее не выбранного пакета openvpn.
Распаковывается пакет openvpn (из файла .../openvpn_2.1~rc15-1_i386.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет libpkcs11-helper1 (1.07-1) ...
Настраивается пакет openvpn-blacklist (0.3) ...
Настраивается пакет openvpn (2.1~rc15-1) ...
Restarting virtual private network daemon.:.
14:52:39
#exit
exit
Connection to 192.168.15.2 closed.
прошло 35 минут
/dev/pts/20
15:28:15
#cd /root/new

15:28:20
#ls
quiz
15:28:21
#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'
15:28:32
#rm *

15:28:40
#cd ..

15:28:42
#ls
a  etc.iso  flash  new  screen.dot  screen.png  vimrc
/dev/pts/9
15:29:11
#xcalc
Error: Can't open display: localhost:10.0
15:29:25
#exit
exit
Connection to 192.168.15.2 closed.
/dev/pts/20
15:34:32
#scp 10.0.35.100:/home/quiz/quiz /root/new/
ssh: connect to host 10.0.35.100 port 22: Connection refused
15:34:37
#scp 10.0.35.100:/home/quiz/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*   .   |
+-----------------+
root@10.0.35.100's password:
quiz                                          100%   21KB  21.0KB/s   00:00
15:38:58
#cd new

15:39:01
#ls
quiz
15:39:02
#scp * 192.168.15.13:/root/
Host key fingerprint is 34:6c:c2:da:38:7c:d7:17:e9:cd:17:8d:e7:cf:f1:a6
+--[ RSA 2048]----+
|                 |
|     . .     . ..|
|      o =   o ..o|
|   . + + o . + o.|
|    = o S . o o.o|
|     o .   .   o+|
|                =|
|               o |
|              E  |
+-----------------+
quiz                                          100%   21KB  21.0KB/s   00:00
15:39:24
#rm *

/dev/tty1
15:39:30
#ssh quiz@10.0.35.100
-----------------------------------------------------------------[39/39]-----
 Вы создали файловую систему и теперь хотите, чтобы она автоматически
 монтировалась при загрузке. В каком файле вам необходимо создать
 запись о ней?
 1. /etc/mtab
 2. /etc/vmtab
 3. /etc/fstab
 4. /etc/inittab
 5. /etc/default/fs
 6. /etc/default/mount
---------------------------------------------------------------------------
3
Your score: 23
Connection to 10.0.35.100 closed.
/dev/pts/20
15:39:36
#cd ..

15:39:38
#rmdir new

/dev/pts/0
15:41:23
#pgrep l3
7633
15:41:29
#kill -9 7633

15:41:36
#scp root@10.0.35.100:/home/quiz/quiz /usr/bin/
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:
quiz                                          100%   21KB  21.0KB/s   00:00
прошло 37 минут
/dev/pts/0
16:18:54
#cd /root

16:19:22
#ls
a  etc.iso  flash  screen.dot  screen.png  vimrc
16:19:24
#cd

/dev/pts/13
16:29:15
#ssh root@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    |
|      ooo*   .   |
+-----------------+
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 17:14:13 2009 from linux6.unix.nt
l3-agent is already running: pid=4804; pidfile=/root/.lilalo/l3-agent.pid
прошло 35 минут
/dev/pts/9
17:04:19
#vi /etc/network/interfaces
--- /tmp/l3-saved-9247.17131.17545	2009-06-03 17:07:51.000000000 +0300
+++ /etc/network/interfaces	2009-06-03 17:10:56.000000000 +0300
@@ -5,10 +5,10 @@
 
 iface lo inet loopback
 iface eth0 inet static
-    address 192.168.15.5
+    address 192.168.103.2
     netmask 255.255.255.0
     network 192.168.103.0
     broadcast 192.168.103.255
-    gateway 192.168.15.254
+    gateway 192.168.103.1
 
 
17:10:59
#ifconfig
eth0      Link encap:Ethernet  HWaddr 00:0a:01:d4:d3:5a
          inet addr:192.168.103.2  Bcast:192.168.103.255  Mask:255.255.255.0
          inet6 addr: fe80::20a:1ff:fed4:d35a/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:53998 errors:0 dropped:0 overruns:0 frame:0
          TX packets:37198 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:20031528 (19.1 MiB)  TX bytes:3768252 (3.5 MiB)
          Interrupt:20 Base address:0x6c00
lo        Link encap:Local Loopback
          inet addr:127.0.0.1  Mask:255.0.0.0
          inet6 addr: ::1/128 Scope:Host
          UP LOOPBACK RUNNING  MTU:16436  Metric:1
          RX packets:247 errors:0 dropped:0 overruns:0 frame:0
          TX packets:247 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:0
          RX bytes:37647 (36.7 KiB)  TX bytes:37647 (36.7 KiB)
17:11:14
#ping 192.168.103.1
PING 192.168.103.1 (192.168.103.1) 56(84) bytes of data.
64 bytes from 192.168.103.1: icmp_seq=666 ttl=64 time=2004 ms
64 bytes from 192.168.103.1: icmp_seq=667 ttl=64 time=996 ms
64 bytes from 192.168.103.1: icmp_seq=668 ttl=64 time=0.104 ms
64 bytes from 192.168.103.1: icmp_seq=669 ttl=64 time=0.107 ms
64 bytes from 192.168.103.1: icmp_seq=670 ttl=64 time=0.108 ms
64 bytes from 192.168.103.1: icmp_seq=671 ttl=64 time=0.107 ms
64 bytes from 192.168.103.1: icmp_seq=672 ttl=64 time=0.106 ms
64 bytes from 192.168.103.1: icmp_seq=673 ttl=64 time=0.107 ms
64 bytes from 192.168.103.1: icmp_seq=674 ttl=64 time=0.112 ms
...
64 bytes from 192.168.103.1: icmp_seq=700 ttl=64 time=0.112 ms
64 bytes from 192.168.103.1: icmp_seq=701 ttl=64 time=0.109 ms
64 bytes from 192.168.103.1: icmp_seq=702 ttl=64 time=0.118 ms
64 bytes from 192.168.103.1: icmp_seq=703 ttl=64 time=0.111 ms
64 bytes from 192.168.103.1: icmp_seq=704 ttl=64 time=0.109 ms
64 bytes from 192.168.103.1: icmp_seq=705 ttl=64 time=0.114 ms
^C
--- 192.168.103.1 ping statistics ---
705 packets transmitted, 40 received, 94% packet loss, time 709316ms
rtt min/avg/max/mdev = 0.103/75.127/2004.455/345.869 ms, pipe 2
прошло 20 минут
17:31:31
#ping 192.168.101.1
PING 192.168.101.1 (192.168.101.1) 56(84) bytes of data.
^C
--- 192.168.101.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 2016ms
17:36:34
#ping 192.168.201.1
PING 192.168.201.1 (192.168.201.1) 56(84) bytes of data.
^C
--- 192.168.201.1 ping statistics ---
7 packets transmitted, 0 received, 100% packet loss, time 6047ms
17:36:45
#ping 192.168.201.1
PING 192.168.201.1 (192.168.201.1) 56(84) bytes of data.
^C
--- 192.168.201.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 999ms
17:38:19
#ping 192.168.101.1
PING 192.168.101.1 (192.168.101.1) 56(84) bytes of data.
^C
--- 192.168.101.1 ping statistics ---
3 packets transmitted, 0 received, 100% packet loss, time 1999ms
17:38:25
#ping 192.168.102.1
PING 192.168.102.1 (192.168.102.1) 56(84) bytes of data.
^C
--- 192.168.102.1 ping statistics ---
2 packets transmitted, 0 received, 100% packet loss, time 1007ms

Файлы

  • /etc/passwd
  • /home/quiz/quiz
  • /home/quiz/start-quiz
  • new
  • quiz
  • /etc/passwd
    >
    root:x:0:0:root:/root:/bin/bash
    daemon:x:1:1:daemon:/usr/sbin:/bin/sh
    bin:x:2:2:bin:/bin:/bin/sh
    sys:x:3:3:sys:/dev:/bin/sh
    sync:x:4:65534:sync:/bin:/bin/sync
    games:x:5:60:games:/usr/games:/bin/sh
    man:x:6:12:man:/var/cache/man:/bin/sh
    lp:x:7:7:lp:/var/spool/lpd:/bin/sh
    mail:x:8:8:mail:/var/mail:/bin/sh
    news:x:9:9:news:/var/spool/news:/bin/sh
    uucp:x:10:10:uucp:/var/spool/uucp:/bin/sh
    proxy:x:13:13:proxy:/bin:/bin/sh
    www-data:x:33:33:www-data:/var/www:/bin/sh
    backup:x:34:34:backup:/var/backups:/bin/sh
    list:x:38:38:Mailing List Manager:/var/list:/bin/sh
    irc:x:39:39:ircd:/var/run/ircd:/bin/sh
    gnats:x:41:41:Gnats Bug-Reporting System (admin):/var/lib/gnats:/bin/sh
    nobody:x:65534:65534:nobody:/nonexistent:/bin/sh
    libuuid:x:100:101::/var/lib/libuuid:/bin/sh
    sshd:x:101:65534::/var/run/sshd:/usr/sbin/nologin
    messagebus:x:102:104::/var/run/dbus:/bin/false
    polkituser:x:103:105:PolicyKit,,,:/var/run/PolicyKit:/bin/false
    haldaemon:x:104:106:Hardware abstraction layer,,,:/var/run/hald:/bin/false
    gdm:x:105:107:Gnome Display Manager:/var/lib/gdm:/bin/false
    user:x:1000:1000::/home/user:/bin/bash
    Debian-exim:x:106:108::/var/spool/exim4:/bin/false
    user2:x:1001:1001::/home/user2:/bin/bash
    uuu:x:1002:1002:,,,:/home/uuu:/bin/bash
    dom:x:1004:1004:,,,:/home/dom:/bin/bash
    dom1:x:1005:1005::/home/dom1:/bin/sh
    aaron:x:1003:1003:,,,:/home/aaron:/bin/bash
    ada:x:1006:1006:,,,:/home/ada:/bin/bash
    user1:x:1007:1007::/home/user1:/bin/sh
    approx:x:107:109::/var/cache/approx:/bin/false
    quiz:x:1008:1008::/home/quiz:/usr/local/bin/quizlogin
    avery:x:1009:1009::/home/avery:/bin/sh
    axel:x:1010:1010::/home/axel:/bin/sh
    barbara:x:1011:1011::/home/barbara:/bin/sh
    barbra:x:1012:1012::/home/barbra:/bin/sh
    barney:x:1013:1013::/home/barney:/bin/sh
    barrett:x:1014:1014::/home/barrett:/bin/sh
    barrio:x:1015:1015::/home/barrio:/bin/sh
    barry:x:1016:1016::/home/barry:/bin/sh
    bart:x:1017:1017::/home/bart:/bin/sh
    barton:x:1018:1018::/home/barton:/bin/sh
    bea:x:1019:1019::/home/bea:/bin/sh
    beckie:x:1020:1020::/home/beckie:/bin/sh
    becky:x:1021:1021::/home/becky:/bin/sh
    behdad:x:1022:1022::/home/behdad:/bin/sh
    belinda:x:1023:1023::/home/belinda:/bin/sh
    ben:x:1024:1024::/home/ben:/bin/sh
    benjamin:x:1025:1025::/home/benjamin:/bin/sh
    benny:x:1026:1026::/home/benny:/bin/sh
    benson:x:1027:1027::/home/benson:/bin/sh
    bernard:x:1028:1028::/home/bernard:/bin/sh
    
    /home/quiz/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'
    
    /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'
    

    Статистика

    Время первой команды журнала13:35:12 2009- 6- 3
    Время последней команды журнала17:38:25 2009- 6- 3
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %20.79
    Процент синтаксически неверно набранных команд, % 0.99
    Суммарное время работы с терминалом *, час 2.25
    Количество командных строк в единицу времени, команда/мин 0.75
    Частота использования команд
    cd19|=================| 17.59%
    ls17|===============| 15.74%
    cat12|===========| 11.11%
    scp10|=========| 9.26%
    ssh7|======| 6.48%
    ping6|=====| 5.56%
    rm6|=====| 5.56%
    exit5|====| 4.63%
    less4|===| 3.70%
    ssh-add2|=| 1.85%
    rsync2|=| 1.85%
    apt-get2|=| 1.85%
    ifconfig1|| 0.93%
    ps1|| 0.93%
    mkdir1|| 0.93%
    pgrep1|| 0.93%
    man1|| 0.93%
    xcalc1|| 0.93%
    ssh-keygen1|| 0.93%
    eval1|| 0.93%
    echo1|| 0.93%
    nc1|| 0.93%
    vi1|| 0.93%
    rmdir1|| 0.93%
    grep1|| 0.93%
    kill1|| 0.93%
    find1|| 0.93%
    tar1|| 0.93%
    ____
    *) Интервалы неактивности длительностью 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$