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

Содержание

Журнал

Среда (05/27/09)

/dev/pts/7
15:40:17
#!ssh
ssh 127.0.0.1
root@127.0.0.1's password:
Permission denied, please try again.
root@127.0.0.1's password:
Permission denied, please try again.
root@127.0.0.1's password:
Permission denied (publickey,password).
/dev/pts/8
15:40:17
#!ssh
ssh 127.0.0.1
root@127.0.0.1's password:
Permission denied, please try again.
root@127.0.0.1's password:
Permission denied, please try again.
root@127.0.0.1's password:
Permission denied (publickey,password).
/dev/pts/7
15:40:58
#ssh 192.168.15.4
The authenticity of host '192.168.15.4 (192.168.15.4)' can't be established.
RSA key fingerprint is 34:6c:c2:da:38:7c:d7:17:e9:cd:17:8d:e7:cf:f1:a6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.15.4' (RSA) to the list of known hosts.
root@192.168.15.4's password:
Permission denied, please try again.
root@192.168.15.4's password:
Permission denied, please try again.
root@192.168.15.4's password:
Permission denied (publickey,password).
/dev/pts/8
15:40:58
#ssh 192.168.15.4
The authenticity of host '192.168.15.4 (192.168.15.4)' can't be established.
RSA key fingerprint is 34:6c:c2:da:38:7c:d7:17:e9:cd:17:8d:e7:cf:f1:a6.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '192.168.15.4' (RSA) to the list of known hosts.
root@192.168.15.4's password:
Permission denied, please try again.
root@192.168.15.4's password:
Permission denied, please try again.
root@192.168.15.4's password:
Permission denied (publickey,password).
/dev/pts/7
15:44:36
#sendxmpp --help
sendxmpp version 1.15
Copyright (c) 2004 - 2005 Dirk-Jan C. Binnema
Copyright (c) 2006 - 2007 Lubomir Host 'rajo'
usage: sendxmpp [options] <recipient1> [<recipient2> ...]
or refer to the the sendxmpp manpage
/dev/pts/8
15:44:36
#sendxmpp --help
sendxmpp version 1.15
Copyright (c) 2004 - 2005 Dirk-Jan C. Binnema
Copyright (c) 2006 - 2007 Lubomir Host 'rajo'
usage: sendxmpp [options] <recipient1> [<recipient2> ...]
or refer to the the sendxmpp manpage
/dev/pts/7
15:47:31
#echo test | sendxmpp --message-type chat swdakaswd@jabber.ru

/dev/pts/8
15:47:31
#echo test | sendxmpp --message-type chat swdakaswd@jabber.ru

прошло 22 минуты
/dev/pts/7
16:09:42
#vi /usr/local/bin/syslog2jabber
/dev/pts/8
16:09:42
#vi /usr/local/bin/syslog2jabber
--- /tmp/l3-saved-25903.25471.20728	2009-05-27 16:10:26.000000000 +0300
+++ /usr/local/bin/syslog2jabber	2009-05-27 16:10:42.000000000 +0300
@@ -1,5 +1,5 @@
 #!/bin/bash
 while read line
 do
-echo $line | /usr/bin/sendxmpp swdakaswd@jabber.ru
+echo $line | /usr/bin/sendxmpp --message-type chat swdakaswd@jabber.ru
 done
/dev/pts/7
16:10:42
#pkill -l syslog-ng
pkill: invalid option -- 'l'
Usage: pkill [-SIGNAL] [-fvx] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST]
        [-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN]
/dev/pts/8
16:10:42
#pkill -l syslog-ng
pkill: invalid option -- 'l'
Usage: pkill [-SIGNAL] [-fvx] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST]
        [-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN]
/dev/pts/7
16:10:59
#pkill -l syslog
pkill: invalid option -- 'l'
Usage: pkill [-SIGNAL] [-fvx] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST]
        [-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN]
/dev/pts/8
16:10:59
#pkill -l syslog
pkill: invalid option -- 'l'
Usage: pkill [-SIGNAL] [-fvx] [-n|-o] [-P PPIDLIST] [-g PGRPLIST] [-s SIDLIST]
        [-u EUIDLIST] [-U UIDLIST] [-G GIDLIST] [-t TERMLIST] [PATTERN]
16:11:04
#pgrep syslog
26575
27185
/dev/pts/7
16:11:04
#pgrep syslog
26575
27185
16:11:23
#ps aux | grep syslog
root     26575  0.0  0.0   3048  1040 ?        Ss   15:21   0:00 /usr/sbin/syslog-ng -p /var/run/syslog-ng.pid
root     27185  0.0  0.0   4688  1176 ?        S    15:39   0:00 /bin/bash /usr/local/bin/syslog2jabber
root     27366  0.0  0.0   3952   748 pts/9    S+   16:11   0:00 grep syslog
/dev/pts/8
16:11:23
#ps aux | grep syslog
root     26575  0.0  0.0   3048  1040 ?        Ss   15:21   0:00 /usr/sbin/syslog-ng -p /var/run/syslog-ng.pid
root     27185  0.0  0.0   4688  1176 ?        S    15:39   0:00 /bin/bash /usr/local/bin/syslog2jabber
root     27366  0.0  0.0   3952   748 pts/9    S+   16:11   0:00 grep syslog
/dev/pts/7
16:11:41
#pgrep syslog-ng
26575
/dev/pts/8
16:11:41
#pgrep syslog-ng
26575
/dev/pts/7
16:11:56
#kill -1 26575

/dev/pts/8
16:11:56
#kill -1 26575

/dev/pts/7
16:12:13
#ps aux | grep syslog
root     26575  0.0  0.0   3048  1060 ?        Ss   15:21   0:00 /usr/sbin/syslog-ng -p /var/run/syslog-ng.pid
root     27385  0.0  0.0   4688  1156 ?        S    16:12   0:00 /bin/bash /usr/local/bin/syslog2jabber
root     27392  0.0  0.0   3952   748 pts/9    S+   16:12   0:00 grep syslog
/dev/pts/8
16:12:13
#ps aux | grep syslog
root     26575  0.0  0.0   3048  1060 ?        Ss   15:21   0:00 /usr/sbin/syslog-ng -p /var/run/syslog-ng.pid
root     27385  0.0  0.0   4688  1156 ?        S    16:12   0:00 /bin/bash /usr/local/bin/syslog2jabber
root     27392  0.0  0.0   3952   748 pts/9    S+   16:12   0:00 grep syslog
/dev/pts/7
16:12:23
#cat /usr/local/bin/syslog2jabber
#!/bin/bash
while read line
do
echo $line | /usr/bin/sendxmpp --message-type chat swdakaswd@jabber.ru
done
/dev/pts/8
16:12:23
#cat /usr/local/bin/syslog2jabber
#!/bin/bash
while read line
do
echo $line | /usr/bin/sendxmpp --message-type chat swdakaswd@jabber.ru
done
/dev/pts/7
16:13:22
#man syslog-ng
/dev/pts/8
16:13:22
#man syslog-ng
прошло 10 минут
/dev/pts/7
16:23:25
#vi /etc/default/monit
/dev/pts/8
16:23:25
#vi /etc/default/monit
--- /tmp/l3-saved-25903.25781.4780	2009-05-27 16:23:51.000000000 +0300
+++ /etc/default/monit	2009-05-27 16:24:06.000000000 +0300
@@ -4,7 +4,7 @@
 # Fredrik Steen <stone@debian.org>
 
 # You must set this variable to for monit to start
-startup=0
+startup=1
 
 # To change the intervals which monit should run uncomment
 # and change this variable.
16:24:06
#vi /etc/monit/monitrc
--- /tmp/l3-saved-25903.18867.556	2009-05-27 16:24:48.000000000 +0300
+++ /etc/monit/monitrc	2009-05-27 16:38:03.000000000 +0300
@@ -17,14 +17,14 @@
 ## Start monit in the background (run as a daemon) and check services at 
 ## 2-minute intervals.
 #
-# set daemon  120
+set daemon 20
 #
 #
 ## Set syslog logging with the 'daemon' facility. If the FACILITY option is
 ## omitted, monit will use 'user' facility by default. If you want to log to 
 ## a stand alone log file instead, specify the path to a log file
 #
-# set logfile syslog facility log_daemon                       
+set logfile syslog facility log_daemon                       
 #
 #
 ## Set the list of mail servers for alert delivery. Multiple servers may be 
@@ -107,7 +107,11 @@
 #    if cpu usage (system) > 30% then alert
 #    if cpu usage (wait) > 20% then alert
 #
-#    
+# our check (cron)
+check process with pidfile /var/run/crond.pid
+    start program = "/etc/init.d/cron start"
+    stop program  = "/etc/init.d/cron stop"
+
 ## Check a file for existence, checksum, permissions, uid and gid. In addition
 ## to alert recipients in the global section, customized alert will be sent to 
 ## additional recipients by specifying a local alert handler. The service may 
@@ -152,6 +156,8 @@
 #    group server
 #    
 #    
+
+
 ## Check device permissions, uid, gid, space and inode usage. Other services,
 ## such as databases, may depend on this resource and an automatically graceful
 ## stop may be cascaded to them before the filesystem will become full and data
/dev/pts/7
16:24:06
#vi /etc/monit/monitrc
прошло 13 минут
/dev/pts/10
16:37:23
#ls /etc/init.d
anacron                gdm              module-init-tools      rc              stop-bootlogd-single
atd                    glibc.sh         monit                  rc.local        sudo
aumix                  hal              mountall-bootclean.sh  rcS             syslog-ng
bootlogd               halt             mountall.sh            README          udev
bootmisc.sh            hostname.sh      mountdevsubfs.sh       reboot          udev-mtab
checkfs.sh             hwclockfirst.sh  mountkernfs.sh         rmnologin       umountfs
checkroot.sh           hwclock.sh       mountnfs-bootclean.sh  rsyslog         umountnfs.sh
console-cyrillic       ifupdown         mountnfs.sh            screen-cleanup  umountroot
console-screen.kbd.sh  ifupdown-clean   mountoverflowtmp       sendsigs        urandom
console-setup          keyboard-setup   mtab.sh                single          x11-common
cron                   keymap.sh        networking             skeleton
dbus                   killprocs        portmap                ssh
exim4                  lpd              procps                 stop-bootlogd
/dev/pts/5
16:37:23
#ls /etc/init.d
anacron                gdm              module-init-tools      rc              stop-bootlogd-single
atd                    glibc.sh         monit                  rc.local        sudo
aumix                  hal              mountall-bootclean.sh  rcS             syslog-ng
bootlogd               halt             mountall.sh            README          udev
bootmisc.sh            hostname.sh      mountdevsubfs.sh       reboot          udev-mtab
checkfs.sh             hwclockfirst.sh  mountkernfs.sh         rmnologin       umountfs
checkroot.sh           hwclock.sh       mountnfs-bootclean.sh  rsyslog         umountnfs.sh
console-cyrillic       ifupdown         mountnfs.sh            screen-cleanup  umountroot
console-screen.kbd.sh  ifupdown-clean   mountoverflowtmp       sendsigs        urandom
console-setup          keyboard-setup   mtab.sh                single          x11-common
cron                   keymap.sh        networking             skeleton
dbus                   killprocs        portmap                ssh
exim4                  lpd              procps                 stop-bootlogd
/dev/pts/10
16:37:28
#/etc/init.d/monit start
Starting daemon monitor: monit.
/dev/pts/5
16:37:28
#/etc/init.d/monit start
Starting daemon monitor: monit.
/dev/pts/7
16:38:03
#vi /etc/monit/monitrc
/dev/pts/8
16:38:03
#vi /etc/monit/monitrc
/dev/pts/10
16:38:20
#pgrep cron
2316
/dev/pts/5
16:38:20
#pgrep cron
2316
/dev/pts/10
16:38:32
#kill 2316

/dev/pts/5
16:38:32
#kill 2316

/dev/pts/10
16:38:45
#pgrep cron

/dev/pts/5
16:38:45
#pgrep cron

/dev/pts/10
16:38:47
#pgrep cron

/dev/pts/5
16:38:47
#pgrep cron

16:38:50
#pgrep cron

16:38:50
#pgrep cron

/dev/pts/10
16:38:50
#pgrep cron

16:38:50
#pgrep cron

16:38:51
#pgrep cron

/dev/pts/5
16:38:51
#pgrep cron

/dev/pts/10
16:38:52
#pgrep cron

/dev/pts/5
16:38:52
#pgrep cron

/dev/pts/10
16:38:53
#pgrep cron

16:38:53
#pgrep cron

/dev/pts/5
16:38:53
#pgrep cron

16:38:53
#pgrep cron

/dev/pts/10
16:38:54
#pgrep cron

/dev/pts/5
16:38:54
#pgrep cron

/dev/pts/10
16:38:55
#pgrep cron

16:38:55
#pgrep cron

/dev/pts/5
16:38:55
#pgrep cron

16:38:55
#pgrep cron

/dev/pts/10
16:38:56
#pgrep cron

/dev/pts/5
16:38:56
#pgrep cron

/dev/pts/10
16:39:00
#pgrep cron

16:39:00
#pgrep cron

/dev/pts/5
16:39:00
#pgrep cron

16:39:00
#pgrep cron

/dev/pts/10
16:39:03
#pgrep cron

/dev/pts/5
16:39:03
#pgrep cron

/dev/pts/10
16:39:11
#pgrep cron

/dev/pts/5
16:39:11
#pgrep cron

/dev/pts/10
16:40:15
#ls /var/run
atd.pid                 crond.pid     gdm.pid     monit.pid  portmap_mapping  sshd.pid
console                 crond.reboot  gdm_socket  motd       portmap.pid      syslog-ng.pid
ConsoleKit              dbus          hald        network    screen           utmp
console-kit-daemon.pid  exim4         lpd.pid     PolicyKit  sshd
/dev/pts/5
16:40:15
#ls /var/run
atd.pid                 crond.pid     gdm.pid     monit.pid  portmap_mapping  sshd.pid
console                 crond.reboot  gdm_socket  motd       portmap.pid      syslog-ng.pid
ConsoleKit              dbus          hald        network    screen           utmp
console-kit-daemon.pid  exim4         lpd.pid     PolicyKit  sshd
/dev/pts/10
16:40:58
#/etc/init.d/monit restart
Stopping daemon monitor: monit.
Starting daemon monitor: monit.
/dev/pts/5
16:40:58
#/etc/init.d/monit restart
Stopping daemon monitor: monit.
Starting daemon monitor: monit.
/dev/pts/7
16:41:45
#vi /etc/monit/monitrc
/dev/pts/8
16:41:45
#vi /etc/monit/monitrc
--- /tmp/l3-saved-25903.21350.28001	2009-05-27 16:42:47.000000000 +0300
+++ /etc/monit/monitrc	2009-05-27 16:46:33.000000000 +0300
@@ -110,7 +110,7 @@
 # our check (cron)
 check process cron with pidfile /var/run/crond.pid
     start program = "/etc/init.d/cron start"
-    stop program  = "/etc/init.d/cron stop"
+#    stop program  = "/etc/init.d/cron stop"
 
 ## Check a file for existence, checksum, permissions, uid and gid. In addition
 ## to alert recipients in the global section, customized alert will be sent to 
/dev/pts/10
16:42:02
#pgrep cron
28241
/dev/pts/5
16:42:02
#pgrep cron
28241
/dev/pts/10
16:42:08
#kill 28241

/dev/pts/5
16:42:08
#kill 28241

/dev/pts/10
16:42:17
#pgrep cron

/dev/pts/5
16:42:17
#pgrep cron

/dev/pts/10
16:42:19
#pgrep cron

/dev/pts/5
16:42:19
#pgrep cron

/dev/pts/10
16:42:20
#pgrep cron

/dev/pts/5
16:42:20
#pgrep cron

/dev/pts/10
16:42:21
#pgrep cron

/dev/pts/5
16:42:21
#pgrep cron

/dev/pts/10
16:42:22
#pgrep cron

16:42:22
#pgrep cron

/dev/pts/5
16:42:22
#pgrep cron

16:42:22
#pgrep cron

/dev/pts/10
16:42:24
#pgrep cron

/dev/pts/5
16:42:24
#pgrep cron

/dev/pts/10
16:42:25
#pgrep cron

16:42:25
#pgrep cron

/dev/pts/5
16:42:25
#pgrep cron

Файлы

  • /usr/local/bin/syslog2jabber
  • /usr/local/bin/syslog2jabber
    >
    #!/bin/bash
    while read line
    do
    echo $line | /usr/bin/sendxmpp --message-type chat swdakaswd@jabber.ru
    done
    

    Статистика

    Время первой команды журнала15:40:17 2009- 5-27
    Время последней команды журнала16:42:25 2009- 5-27
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, %56.44
    Процент синтаксически неверно набранных команд, % 0.00
    Суммарное время работы с терминалом *, час 1.04
    Количество командных строк в единицу времени, команда/мин 1.63
    Частота использования команд
    pgrep57|=====================================================| 53.27%
    vi10|=========| 9.35%
    kill6|=====| 5.61%
    ps4|===| 3.74%
    grep4|===| 3.74%
    /etc/init.d/monit4|===| 3.74%
    ls4|===| 3.74%
    pkill4|===| 3.74%
    sendxmpp4|===| 3.74%
    echo2|=| 1.87%
    !ssh2|=| 1.87%
    cat2|=| 1.87%
    man2|=| 1.87%
    ssh2|=| 1.87%
    ____
    *) Интервалы неактивности длительностью 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$