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

Содержание

Журнал

Четверг (04/11/13)

/dev/pts/4
09:28:26
#wget xgu.ru/class/nt-voip-2012-oct/belki.txt
--2013-04-11 10:29:16--  http://xgu.ru/class/nt-voip-2012-oct/belki.txt
Распознаётся xgu.ru... 178.63.229.230
Устанавливается соединение с xgu.ru|178.63.229.230|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 1574 (1,5K) [text/plain]
Saving to: «belki.txt»
100%[============================================================>] 1.574       --.-K/s   в 0s
2013-04-11 10:29:16 (282 MB/s) - «belki.txt» saved [1574/1574]
/dev/pts/0
09:28:26
#wget xgu.ru/class/nt-voip-2012-oct/belki.txt
--2013-04-11 10:29:16--  http://xgu.ru/class/nt-voip-2012-oct/belki.txt
Распознаётся xgu.ru... 178.63.229.230
Устанавливается соединение с xgu.ru|178.63.229.230|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 1574 (1,5K) [text/plain]
Saving to: «belki.txt»
100%[============================================================>] 1.574       --.-K/s   в 0s
2013-04-11 10:29:16 (282 MB/s) - «belki.txt» saved [1574/1574]
/dev/pts/4
09:29:16
#wget xgu.ru/class/nt-voip-2012-oct/burunduki.txt
--2013-04-11 10:29:25--  http://xgu.ru/class/nt-voip-2012-oct/burunduki.txt
Распознаётся xgu.ru... 178.63.229.230
Устанавливается соединение с xgu.ru|178.63.229.230|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 2975 (2,9K) [text/plain]
Saving to: «burunduki.txt»
100%[============================================================>] 2.975       --.-K/s   в 0s
2013-04-11 10:29:25 (25,1 MB/s) - «burunduki.txt» saved [2975/2975]
/dev/pts/0
09:29:16
#wget xgu.ru/class/nt-voip-2012-oct/burunduki.txt
--2013-04-11 10:29:25--  http://xgu.ru/class/nt-voip-2012-oct/burunduki.txt
Распознаётся xgu.ru... 178.63.229.230
Устанавливается соединение с xgu.ru|178.63.229.230|:80... соединение установлено.
Запрос HTTP послан, ожидается ответ... 200 OK
Длина: 2975 (2,9K) [text/plain]
Saving to: «burunduki.txt»
100%[============================================================>] 2.975       --.-K/s   в 0s
2013-04-11 10:29:25 (25,1 MB/s) - «burunduki.txt» saved [2975/2975]
/dev/pts/4
09:29:25
#scp root@192.168.70.1/usr/local/bin/asterisk-festival.pl
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
/dev/pts/0
09:29:25
#scp root@192.168.70.1/usr/local/bin/asterisk-festival.pl
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
/dev/pts/4
09:38:25
#scp root@192.168.70.1:/usr/local/bin/asterisk-festival.pl /usr/local/bin/
root@192.168.70.1's password:
asterisk-festival.pl                                                100%  702     0.7KB/s   00:00
/dev/pts/0
09:38:25
#scp root@192.168.70.1:/usr/local/bin/asterisk-festival.pl /usr/local/bin/
root@192.168.70.1's password:
asterisk-festival.pl                                                100%  702     0.7KB/s   00:00
/dev/pts/4
09:38:49
#chmod +x /usr/local/bin/asterisk-festival.pl

/dev/pts/0
09:38:49
#chmod +x /usr/local/bin/asterisk-festival.pl

/dev/pts/4
09:39:21
#aptitude search agi
p   bmagic                                     - C++ template library for efficient platform independe
p   check-mk-config-nagios3                    - general purpose nagios-plugin for retrieving data
v   cluster-messaging-framework                -
p   djagios                                    - A package to help configure nagios written in Django
p   ezgo-imaging                               - EzGo imaging
p   gitmagic                                   - guide about Git version control system
p   gosa-plugin-nagios                         - nagios plugin for GOsa²
p   gosa-plugin-nagios-schema                  - LDAP schema for GOsa² nagios plugin
p   graphicsmagick                             - collection of image processing tools
p   graphicsmagick-dbg                         - format-independent image processing - debugging symbo
...
v   python2.6-imaging-sane                     -
v   python2.6-imaging-tk                       -
v   python2.6-magic                            -
v   python2.6-pythonmagick                     -
p   rmagic                                     - Report Magic for Analog
p   ttf-aoyagi-kouzan-t                        - Brush-style Japanese font
p   ttf-aoyagi-soseki                          - Brush-style Japanese font, Aoyagi-Soseki
p   webmagick                                  - create gallery thumbnails for website
i A xserver-xorg-video-neomagic                - X.Org X server -- Neomagic display driver
p   yagiuda                                    - software to analyse performance of Yagi-Uda antennas
/dev/pts/0
09:39:21
#aptitude search agi
p   bmagic                                     - C++ template library for efficient platform independe
p   check-mk-config-nagios3                    - general purpose nagios-plugin for retrieving data
v   cluster-messaging-framework                -
p   djagios                                    - A package to help configure nagios written in Django
p   ezgo-imaging                               - EzGo imaging
p   gitmagic                                   - guide about Git version control system
p   gosa-plugin-nagios                         - nagios plugin for GOsa²
p   gosa-plugin-nagios-schema                  - LDAP schema for GOsa² nagios plugin
p   graphicsmagick                             - collection of image processing tools
p   graphicsmagick-dbg                         - format-independent image processing - debugging symbo
...
v   python2.6-imaging-sane                     -
v   python2.6-imaging-tk                       -
v   python2.6-magic                            -
v   python2.6-pythonmagick                     -
p   rmagic                                     - Report Magic for Analog
p   ttf-aoyagi-kouzan-t                        - Brush-style Japanese font
p   ttf-aoyagi-soseki                          - Brush-style Japanese font, Aoyagi-Soseki
p   webmagick                                  - create gallery thumbnails for website
i A xserver-xorg-video-neomagic                - X.Org X server -- Neomagic display driver
p   yagiuda                                    - software to analyse performance of Yagi-Uda antennas
/dev/pts/4
09:39:57
#aptitude search asterisk
i   asterisk                                   - Open Source Private Branch Exchange (PBX)
v   asterisk-1.6.2                             -
v   asterisk-1.8                               -
p   asterisk-chan-capi                         - Common ISDN API 2.0 implementation for Asterisk
i   asterisk-config                            - Configuration files for Asterisk
p   asterisk-core-sounds-en-g722               - asterisk PBX sound files - English/g722
p   asterisk-core-sounds-en-gsm                - asterisk PBX sound files - English/gsm
p   asterisk-core-sounds-en-wav                - asterisk PBX sound files - English/wav
p   asterisk-core-sounds-es-g722               - asterisk PBX sound files - Spanish/g722
p   asterisk-core-sounds-es-gsm                - asterisk PBX sound files - Spanish/gsm
...
p   asterisk-prompt-it                         - Italian voice prompts for the Asterisk PBX
p   asterisk-prompt-se                         - Swedish voice prompts for Asterisk
i   asterisk-sounds-extra                      - Additional sound files for the Asterisk PBX
i   asterisk-sounds-main                       - Core Sound files for Asterisk (English)
p   asterisk-voicemail                         - simple voicemail support for the Asterisk PBX
p   asterisk-voicemail-imapstorage             - IMAP voicemail storage support for the Asterisk PBX
p   asterisk-voicemail-odbcstorage             - ODBC voicemail storage support for the Asterisk PBX
v   asterisk-voicemail-storage                 -
p   libasterisk-agi-perl                       - Collections of Perl modules to be used with Asterisk
p   python-asterisk                            - управление Asterisk из сценариев Python
/dev/pts/0
09:39:57
#aptitude search asterisk
i   asterisk                                   - Open Source Private Branch Exchange (PBX)
v   asterisk-1.6.2                             -
v   asterisk-1.8                               -
p   asterisk-chan-capi                         - Common ISDN API 2.0 implementation for Asterisk
i   asterisk-config                            - Configuration files for Asterisk
p   asterisk-core-sounds-en-g722               - asterisk PBX sound files - English/g722
p   asterisk-core-sounds-en-gsm                - asterisk PBX sound files - English/gsm
p   asterisk-core-sounds-en-wav                - asterisk PBX sound files - English/wav
p   asterisk-core-sounds-es-g722               - asterisk PBX sound files - Spanish/g722
p   asterisk-core-sounds-es-gsm                - asterisk PBX sound files - Spanish/gsm
...
p   asterisk-prompt-it                         - Italian voice prompts for the Asterisk PBX
p   asterisk-prompt-se                         - Swedish voice prompts for Asterisk
i   asterisk-sounds-extra                      - Additional sound files for the Asterisk PBX
i   asterisk-sounds-main                       - Core Sound files for Asterisk (English)
p   asterisk-voicemail                         - simple voicemail support for the Asterisk PBX
p   asterisk-voicemail-imapstorage             - IMAP voicemail storage support for the Asterisk PBX
p   asterisk-voicemail-odbcstorage             - ODBC voicemail storage support for the Asterisk PBX
v   asterisk-voicemail-storage                 -
p   libasterisk-agi-perl                       - Collections of Perl modules to be used with Asterisk
p   python-asterisk                            - управление Asterisk из сценариев Python
/dev/pts/4
09:40:04
#aptitude install libasterisk-agi-perl
Следующие НОВЫЕ пакеты будут установлены:яниях
  libasterisk-agi-perl
0 пакетов обновлено, 1 установлено новых, 0 пакетов отмечено для удаления, и 2 пакетов не обновлено.
Необходимо получить 42,2 kB архивов. После распаковки 160 kB будет занято.
Получить:1 http://192.168.15.253/debian/ squeeze/main libasterisk-agi-perl all 1.01-2 [42,2 kB]
Получено 42,2 kБ в 0с (1.636 kБ/с)
Выбор ранее не выбранного пакета libasterisk-agi-perl.
(Чтение базы данных ... на данный момент установлено 131880 файлов и каталогов.)
Распаковывается пакет libasterisk-agi-perl (из файла .../libasterisk-agi-perl_1.01-2_all.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет libasterisk-agi-perl (1.01-2) ...
                            аний задачширенных состояний¸ÑÑ…
/dev/pts/0
09:40:04
#aptitude install libasterisk-agi-perl
Следующие НОВЫЕ пакеты будут установлены:яниях
  libasterisk-agi-perl
0 пакетов обновлено, 1 установлено новых, 0 пакетов отмечено для удаления, и 2 пакетов не обновлено.
Необходимо получить 42,2 kB архивов. После распаковки 160 kB будет занято.
Получить:1 http://192.168.15.253/debian/ squeeze/main libasterisk-agi-perl all 1.01-2 [42,2 kB]
Получено 42,2 kБ в 0с (1.636 kБ/с)
Выбор ранее не выбранного пакета libasterisk-agi-perl.
(Чтение базы данных ... на данный момент установлено 131880 файлов и каталогов.)
Распаковывается пакет libasterisk-agi-perl (из файла .../libasterisk-agi-perl_1.01-2_all.deb)...
Обрабатываются триггеры для man-db ...
Настраивается пакет libasterisk-agi-perl (1.01-2) ...
                            аний задачширенных состояний¸ÑÑ…
/dev/pts/4
09:41:06
#cat /usr/local/bin/asterisk-festival.pl
#!/usr/bin/perl
use Asterisk::AGI;
use File::Basename;
use Digest::MD5 qw(md5_hex);
$AGI = new Asterisk::AGI;
my %input = $AGI->ReadParse();
my $f = $ARGV[0];
my $text = "@ARGV";
if (open(F, "$f")) {
  local $/;
...
unless (-f $wavefile) {
 open(fileOUT, ">$sounddir"."/say-text-$hash.txt");
 print fileOUT "$text";
 close(fileOUT);
 my $execf="text2wave -eval '(voice_msu_ru_nsh_clunits)' $sounddir/say-text-$hash.txt -F 8000 -o $wavefile";
 system($execf);
 unlink($sounddir."/say-text-$hash.txt");
}
$wavefile =~ s/.wav$//;
$AGI->exec('Playback', $wavefile);
/dev/pts/0
09:41:06
#cat /usr/local/bin/asterisk-festival.pl
#!/usr/bin/perl
use Asterisk::AGI;
use File::Basename;
use Digest::MD5 qw(md5_hex);
$AGI = new Asterisk::AGI;
my %input = $AGI->ReadParse();
my $f = $ARGV[0];
my $text = "@ARGV";
if (open(F, "$f")) {
  local $/;
...
unless (-f $wavefile) {
 open(fileOUT, ">$sounddir"."/say-text-$hash.txt");
 print fileOUT "$text";
 close(fileOUT);
 my $execf="text2wave -eval '(voice_msu_ru_nsh_clunits)' $sounddir/say-text-$hash.txt -F 8000 -o $wavefile";
 system($execf);
 unlink($sounddir."/say-text-$hash.txt");
}
$wavefile =~ s/.wav$//;
$AGI->exec('Playback', $wavefile);
/dev/pts/4
09:41:26
#mkdir /var/lib/asterisk/sounds/tts

/dev/pts/0
09:41:26
#mkdir /var/lib/asterisk/sounds/tts

/dev/pts/4
09:42:21
#chown asterisk:asterisk /var/lib/asterisk/sounds/tts

/dev/pts/0
09:42:21
#chown asterisk:asterisk /var/lib/asterisk/sounds/tts

/dev/pts/4
09:44:07
#aplay /var/lib/asterisk/sounds/tts/tts-597b55cfeee2b6c9183aaef0060cb1da.wav
Playing WAVE '/var/lib/asterisk/sounds/tts/tts-597b55cfeee2b6c9183aaef0060cb1da.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
^CAborted by signal Прерывание...
/dev/pts/0
09:44:07
#aplay /var/lib/asterisk/sounds/tts/tts-597b55cfeee2b6c9183aaef0060cb1da.wav
Playing WAVE '/var/lib/asterisk/sounds/tts/tts-597b55cfeee2b6c9183aaef0060cb1da.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
^CAborted by signal Прерывание...
/dev/pts/4
09:44:25
#rm /var/lib/asterisk/sounds/tts/tts-597b55cfeee2b6c9183aaef0060cb1da.wav

/dev/pts/0
09:44:25
#rm /var/lib/asterisk/sounds/tts/tts-597b55cfeee2b6c9183aaef0060cb1da.wav

/dev/pts/4
09:45:19
#mkdir /var/tmp/text

/dev/pts/0
09:45:19
#mkdir /var/tmp/text

/dev/pts/4
09:45:40
#cp /tmp/belki.txt /var/tmp/text/

/dev/pts/0
09:45:40
#cp /tmp/belki.txt /var/tmp/text/

/dev/pts/4
09:45:57
#cp /tmp/burunduki.txt /var/tmp/text/

/dev/pts/0
09:45:57
#cp /tmp/burunduki.txt /var/tmp/text/

/dev/pts/4
09:46:08
#cd /var/tmp/text/

/dev/pts/0
09:46:08
#cd /var/tmp/text/

/dev/pts/4
09:46:14
#ls -l
итого 8
-rw-r--r-- 1 root root 1574 Апр 11 10:45 belki.txt
-rw-r--r-- 1 root root 2975 Апр 11 10:46 burunduki.txt
/dev/pts/0
09:46:14
#ls -l
итого 8
-rw-r--r-- 1 root root 1574 Апр 11 10:45 belki.txt
-rw-r--r-- 1 root root 2975 Апр 11 10:46 burunduki.txt
/dev/pts/4
09:46:44
#vim
09:46:44
#vim
/dev/pts/0
09:46:44
#vim
09:46:44
#vim
/dev/pts/4
09:46:44
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-2162.18683.2155	2013-04-11 10:47:35.000000000 +0300
+++ /etc/asterisk/extensions.conf	2013-04-11 10:49:32.000000000 +0300
@@ -9,6 +9,7 @@
 	exten => 8300,1,Voicemailmain()
 	exten => 8350,1,Dial(SIP/1301&SIP/1302)
 	exten => 8400,1,Meetme(1234,s)
+	exten => 8700,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/text/burunduki.txt)                                              
 
 [city]
 	exten => _13XX,1,Dial(SIP/${EXTEN},10,wWtTm)
/dev/pts/0
09:46:44
#vim /etc/asterisk/extensions.conf
/dev/pts/4
09:56:06
#[city]

/dev/pts/0
09:56:06
#[city]

/dev/pts/4
09:56:11
#vim /usr/local/bin/
/dev/pts/0
09:56:11
#vim /usr/local/bin/
/dev/pts/4
09:56:11
#vim /usr/local/bin/asterisk-festival.pl
--- /tmp/l3-saved-2162.14414.13628	2013-04-11 10:56:23.000000000 +0300
+++ /usr/local/bin/asterisk-festival.pl	2013-04-11 10:57:24.000000000 +0300
@@ -10,7 +10,8 @@
 
 my $f = $ARGV[0];
 my $text = "@ARGV";
-if (open(F, "$f")) {
+my $pipe = "|" if $f =~ /.sh$/;
+if (open(F, "$f$pipe")) {
   local $/;
   $text = <F>;
 }
/dev/pts/0
09:56:11
#vim /usr/local/bin/asterisk-festival.pl
/dev/pts/4
09:57:26
#}

/dev/pts/0
09:57:26
#}

/dev/pts/4
09:57:27
#mkdir /var/tmp/commands

/dev/pts/0
09:57:27
#mkdir /var/tmp/commands

/dev/pts/4
09:57:45
#vim /var/tmp/commands/current-time.sh
--- /dev/null	2013-04-11 09:30:23.328641287 +0300
+++ /var/tmp/commands/current-time.sh	2013-04-11 10:58:29.000000000 +0300
@@ -0,0 +1,6 @@
+#!/bin/sh
+
+H=$(date +%H)
+M=$(date +%M)
+echo Текущее время $H часов $M минут
+
/dev/pts/0
09:57:45
#vim /var/tmp/commands/current-time.sh
/dev/pts/4
09:58:32
#(date +%H)

/dev/pts/0
09:58:32
#(date +%H)

/dev/pts/4
09:59:41
#aplay
aplay      aplaymidi
09:59:41
#aplay /var/lib/asterisk/sounds/tts/tts-0d079b23f76f610734b7abfa88e22a90
/var/lib/asterisk/sounds/tts/tts-0d079b23f76f610734b7abfa88e22a90: Нет такого файла или каталога
/dev/pts/0
09:59:41
#aplay
aplay      aplaymidi
09:59:41
#aplay /var/lib/asterisk/sounds/tts/tts-0d079b23f76f610734b7abfa88e22a90
/var/lib/asterisk/sounds/tts/tts-0d079b23f76f610734b7abfa88e22a90: Нет такого файла или каталога
/dev/pts/4
09:59:53
#aplay /var/lib/asterisk/sounds/tts/tts-0d079b23f76f610734b7abfa88e22a90.wav
Playing WAVE '/var/lib/asterisk/sounds/tts/tts-0d079b23f76f610734b7abfa88e22a90.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
/dev/pts/0
09:59:53
#aplay /var/lib/asterisk/sounds/tts/tts-0d079b23f76f610734b7abfa88e22a90.wav
Playing WAVE '/var/lib/asterisk/sounds/tts/tts-0d079b23f76f610734b7abfa88e22a90.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
/dev/pts/4
10:00:01
#^C

/dev/pts/0
10:00:01
#^C

/dev/pts/4
10:08:10
#aplay /var/lib/asterisk/sounds/tts/tts-d41d8cd98f00b204e9800998ecf8427e.wav
Playing WAVE '/var/lib/asterisk/sounds/tts/tts-d41d8cd98f00b204e9800998ecf8427e.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
/dev/pts/0
10:08:10
#aplay /var/lib/asterisk/sounds/tts/tts-d41d8cd98f00b204e9800998ecf8427e.wav
Playing WAVE '/var/lib/asterisk/sounds/tts/tts-d41d8cd98f00b204e9800998ecf8427e.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
/dev/pts/4
10:08:26
#aplay /var/lib/asterisk/sounds/tts/tts-d41d8cd98f00b204e9800998ecf8427e.wav
Playing WAVE '/var/lib/asterisk/sounds/tts/tts-d41d8cd98f00b204e9800998ecf8427e.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
/dev/pts/0
10:08:26
#aplay /var/lib/asterisk/sounds/tts/tts-d41d8cd98f00b204e9800998ecf8427e.wav
Playing WAVE '/var/lib/asterisk/sounds/tts/tts-d41d8cd98f00b204e9800998ecf8427e.wav' : Signed 16 bit Little Endian, Rate 8000 Hz, Mono
прошло 44 минуты
/dev/pts/4
10:52:48
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-2162.26736.19973	2013-04-11 11:53:02.000000000 +0300
+++ /etc/asterisk/extensions.conf	2013-04-11 11:56:21.000000000 +0300
@@ -9,7 +9,9 @@
 	exten => 8300,1,Voicemailmain()
 	exten => 8350,1,Dial(SIP/1301&SIP/1302)
 	exten => 8400,1,Meetme(1234,s)
-	exten => 8700,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/text/burunduki.txt)                                              
+	exten => 8700,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/text/burunduki.txt)         
+	exten => 8800,1,System(eject)
+	exten => 8801,1,System(eject -t)
 
 [city]
 	exten => _13XX,1,Dial(SIP/${EXTEN},10,wWtTm)
/dev/pts/0
10:52:48
#vim /etc/asterisk/extensions.conf
/dev/pts/4
10:57:24
#vim /etc/sudoers
/dev/pts/0
10:57:24
#vim /etc/sudoers
/dev/pts/4
10:57:24
#vim /etc/sudoers
--- /tmp/l3-saved-2162.14300.32733	2013-04-11 11:57:42.000000000 +0300
+++ /etc/sudoers	2013-04-11 11:58:31.000000000 +0300
@@ -15,7 +15,7 @@
 
 # User privilege specification
 root	ALL=(ALL) ALL
-
+sterisk ALL=(ALL) NOPASSWD: /usr/bin/eject                                                                                        
 # Allow members of group sudo to execute any command
 # (Note that later entries override this, so you might need to move
 # it further down)
/dev/pts/0
10:57:24
#vim /etc/sudoers
/dev/pts/4
10:58:41
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-2162.17847.32199	2013-04-11 11:59:01.000000000 +0300
+++ /etc/asterisk/extensions.conf	2013-04-11 11:59:36.000000000 +0300
@@ -10,8 +10,8 @@
 	exten => 8350,1,Dial(SIP/1301&SIP/1302)
 	exten => 8400,1,Meetme(1234,s)
 	exten => 8700,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/text/burunduki.txt)         
-	exten => 8800,1,System(eject)
-	exten => 8801,1,System(eject -t)
+	exten => 8800,1,System(sudo eject)
+	exten => 8801,1,System(sudo eject -t)
 
 [city]
 	exten => _13XX,1,Dial(SIP/${EXTEN},10,wWtTm)
/dev/pts/0
10:58:41
#vim /etc/asterisk/extensions.conf
/dev/pts/4
10:59:40
#[interna]ional]

/dev/pts/0
10:59:40
#[interna]ional]

/dev/pts/4
10:59:41
#vim /etc/asterisk/extensions.conf
/dev/pts/0
10:59:41
#vim /etc/asterisk/extensions.conf
/dev/pts/4
11:01:21
#[interna]ional]

/dev/pts/0
11:01:21
#[interna]ional]

/dev/pts/4
11:01:22
#vim /etc/sudoers
--- /tmp/l3-saved-2162.29858.27943	2013-04-11 12:01:35.000000000 +0300
+++ /etc/sudoers	2013-04-11 12:01:53.000000000 +0300
@@ -15,7 +15,7 @@
 
 # User privilege specification
 root	ALL=(ALL) ALL
-sterisk ALL=(ALL) NOPASSWD: /usr/bin/eject                                                                                        
+asterisk ALL=(ALL) NOPASSWD: /usr/bin/eject                                                                                        
 # Allow members of group sudo to execute any command
 # (Note that later entries override this, so you might need to move
 # it further down)
/dev/pts/0
11:01:22
#vim /etc/sudoers
/dev/pts/4
11:01:55
#~

/dev/pts/0
11:01:55
#~

/dev/pts/4
11:04:52
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-2162.7089.1649	2013-04-11 12:05:37.000000000 +0300
+++ /etc/asterisk/extensions.conf	2013-04-11 12:14:02.000000000 +0300
@@ -9,8 +9,12 @@
 	exten => 8300,1,Voicemailmain()
 	exten => 8350,1,Dial(SIP/1301&SIP/1302)
 	exten => 8400,1,Meetme(1234,s)
-	exten => 8700,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/text/burunduki.txt)         
-	exten => 8800,1,System(sudo eject)
+	exten => 8700,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/text/burunduki.txt)
+
+	exten => 8800,1,Answer         
+	exten => 8800,n,Read(PASSWORD,vm-password)
+	exten => 8800,n,GotoIf($[${PASSWORD} == 1234]?correct_password:invalid_password)
+	exten => 8800,n(invalid_password),Playback(vm-invalid-password)                                       exten => 8800,n,Hangup                                                                                exten => 8800,n(correct_password),System(sudo eject)
 	exten => 8801,1,System(sudo eject -t)
 
 [city]
/dev/pts/0
11:04:52
#vim /etc/asterisk/extensions.conf
/dev/pts/4
11:14:05
#vim /etc/asterisk/extensions.conf
--- /tmp/l3-saved-2162.7984.2190	2013-04-11 12:14:36.000000000 +0300
+++ /etc/asterisk/extensions.conf	2013-04-11 12:30:19.000000000 +0300
@@ -11,6 +11,9 @@
 	exten => 8400,1,Meetme(1234,s)
 	exten => 8700,1,AGI(/usr/local/bin/asterisk-festival.pl,/var/tmp/text/burunduki.txt)
 
+exten => 8701,1,Set(ABC=${SHELL(date)})                                                               
+exten => 8701,n,NoOp(${ABC})
+
 	exten => 8800,1,Answer         
 	exten => 8800,n,Read(PASSWORD,vm-password)
 	exten => 8800,n,GotoIf($[${PASSWORD} == 1234]?correct_password:invalid_password)
/dev/pts/0
11:14:05
#vim /etc/asterisk/extensions.conf
прошло 10 минут
/dev/pts/1
11:24:26
#apt-file update
Downloading complete file http://192.168.15.253:9999/debian/dists/squeeze/Contents-i386.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 17.6M  100 17.6M    0     0   203k      0  0:01:28  0:01:28 --:--:--  179k
Downloading complete file http://192.168.15.253:9999/debian-backports/dists/squeeze-backports/Contents-i386.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1949k  100 1949k    0     0  6195k      0 --:--:-- --:--:-- --:--:-- 6189k
Ignoring source without Contents File:
  http://security.debian.org/dists/squeeze/updates/Contents-i386.gz
Downloading complete file http://192.168.15.253:9999/debian/dists/squeeze-updates/Contents-i386.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 18592  100 18592    0     0   194k      0 --:--:-- --:--:-- --:--:--  197k
/dev/pts/6
11:24:26
#apt-file update
Downloading complete file http://192.168.15.253:9999/debian/dists/squeeze/Contents-i386.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 17.6M  100 17.6M    0     0   203k      0  0:01:28  0:01:28 --:--:--  179k
Downloading complete file http://192.168.15.253:9999/debian-backports/dists/squeeze-backports/Contents-i386.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 1949k  100 1949k    0     0  6195k      0 --:--:-- --:--:-- --:--:-- 6189k
Ignoring source without Contents File:
  http://security.debian.org/dists/squeeze/updates/Contents-i386.gz
Downloading complete file http://192.168.15.253:9999/debian/dists/squeeze-updates/Contents-i386.gz
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 18592  100 18592    0     0   194k      0 --:--:-- --:--:-- --:--:--  197k
прошло 98 минут
/dev/pts/1
13:03:25
#cd /var/tmp/message/01.gsm
adsi.conf                console.conf             indications.conf         res_pgsql.conf
adtranvofr.conf          dbsep.conf               jabber.conf              res_snmp.conf
agents.conf              dnsmgr.conf              jingle.conf              rpt.conf
ais.conf                 dsp.conf                 logger.conf              rtp.conf
alarmreceiver.conf       dundi.conf               manager.conf             say.conf
alsa.conf                enum.conf                manager.d/               sip.conf
amd.conf                 extconfig.conf           meetme.conf              sip.conf.ORIG
asterisk.adsi            extensions.ael           mgcp.conf                sip_notify.conf
asterisk.conf            extensions.conf          minivm.conf              skinny.conf
cdr_adaptive_odbc.conf   extensions.conf.ORIG     misdn.conf               sla.conf
...
cdr_manager.conf         extensions_minivm.conf   muted.conf               text1.wav
cdr_odbc.conf            features.conf            osp.conf                 udptl.conf
cdr_pgsql.conf           festival.conf            oss.conf                 unistim.conf
cdr_sqlite3_custom.conf  followme.conf            phone.conf               usbradio.conf
cdr_tds.conf             func_odbc.conf           phoneprov.conf           users.conf
chan_dahdi.conf          gtalk.conf               queuerules.conf          voicemail.conf
cli_aliases.conf         h323.conf                queues.conf              vpb.conf
cli.conf                 http.conf                res_config_sqlite.conf
cli_permissions.conf     iax.conf                 res_ldap.conf
codecs.conf              iaxprov.conf             res_odbc.conf
13:03:25
#cd /var/tmp/
commands/ message/  text/
13:03:25
#cd /var/tmp/text/
belki.txt      burunduki.txt  sounds/        text/
/dev/pts/6
13:03:25
#cd /var/tmp/message/01.gsm
adsi.conf                console.conf             indications.conf         res_pgsql.conf
adtranvofr.conf          dbsep.conf               jabber.conf              res_snmp.conf
agents.conf              dnsmgr.conf              jingle.conf              rpt.conf
ais.conf                 dsp.conf                 logger.conf              rtp.conf
alarmreceiver.conf       dundi.conf               manager.conf             say.conf
alsa.conf                enum.conf                manager.d/               sip.conf
amd.conf                 extconfig.conf           meetme.conf              sip.conf.ORIG
asterisk.adsi            extensions.ael           mgcp.conf                sip_notify.conf
asterisk.conf            extensions.conf          minivm.conf              skinny.conf
cdr_adaptive_odbc.conf   extensions.conf.ORIG     misdn.conf               sla.conf
...
cdr_manager.conf         extensions_minivm.conf   muted.conf               text1.wav
cdr_odbc.conf            features.conf            osp.conf                 udptl.conf
cdr_pgsql.conf           festival.conf            oss.conf                 unistim.conf
cdr_sqlite3_custom.conf  followme.conf            phone.conf               usbradio.conf
cdr_tds.conf             func_odbc.conf           phoneprov.conf           users.conf
chan_dahdi.conf          gtalk.conf               queuerules.conf          voicemail.conf
cli_aliases.conf         h323.conf                queues.conf              vpb.conf
cli.conf                 http.conf                res_config_sqlite.conf
cli_permissions.conf     iax.conf                 res_ldap.conf
codecs.conf              iaxprov.conf             res_odbc.conf
13:03:25
#cd /var/tmp/
commands/ message/  text/
13:03:25
#cd /var/tmp/text/
belki.txt      burunduki.txt  sounds/        text/
/dev/pts/1
13:03:25
#cd /var/tmp/text/sounds/

/dev/pts/6
13:03:25
#cd /var/tmp/text/sounds/

/dev/pts/4
13:05:54
#mc

Файлы

  • /usr/local/bin/asterisk-festival.pl
  • /usr/local/bin/asterisk-festival.pl
    >
    #!/usr/bin/perl
    use Asterisk::AGI;
    use File::Basename;
    use Digest::MD5 qw(md5_hex);
    $AGI = new Asterisk::AGI;
    my %input = $AGI->ReadParse();
    my $f = $ARGV[0];
    my $text = "@ARGV";
    if (open(F, "$f")) {
      local $/;
      $text = <F>;
    }
    my $hash = md5_hex($text);
    my $sounddir = "/var/lib/asterisk/sounds/tts";
    my $wavefile = "$sounddir/"."tts-$hash.wav";
    unless (-f $wavefile) {
     open(fileOUT, ">$sounddir"."/say-text-$hash.txt");
     print fileOUT "$text";
     close(fileOUT);
     my $execf="text2wave -eval '(voice_msu_ru_nsh_clunits)' $sounddir/say-text-$hash.txt -F 8000 -o $wavefile";
     system($execf);
     unlink($sounddir."/say-text-$hash.txt");
    }
    $wavefile =~ s/.wav$//;
    $AGI->exec('Playback', $wavefile);
    

    Статистика

    Время первой команды журнала09:28:26 2013- 4-11
    Время последней команды журнала13:05:54 2013- 4-11
    Количество командных строк в журнале101
    Процент команд с ненулевым кодом завершения, % 9.90
    Процент синтаксически неверно набранных команд, % 0.00
    Суммарное время работы с терминалом *, час 1.24
    Количество командных строк в единицу времени, команда/мин 1.36
    Частота использования команд
    vim28|===========================| 27.72%
    aplay12|===========| 11.88%
    cd10|=========| 9.90%
    mkdir6|=====| 5.94%
    aptitude6|=====| 5.94%
    wget4|===| 3.96%
    cp4|===| 3.96%
    scp4|===| 3.96%
    [interna]ional]4|===| 3.96%
    }2|=| 1.98%
    chown2|=| 1.98%
    chmod2|=| 1.98%
    (date2|=| 1.98%
    rm2|=| 1.98%
    apt-file2|=| 1.98%
    cat2|=| 1.98%
    ~2|=| 1.98%
    ^C2|=| 1.98%
    ls2|=| 1.98%
    [city]2|=| 1.98%
    mc1|| 0.99%
    ____
    *) Интервалы неактивности длительностью 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$