Нужно поменять locale в /etc/default/locale
c en_GB.UTF-8 на ru_RU.UTF-8
и кракозябры в ssh сеансе уйдут.
19 нояб. 2016 г.
15 нояб. 2016 г.
Мигаем светодиодами в Raspberry Pi
Задача:
Есть некий важный процесс, который запускается на Raspberry Pi.
Ему, процессу, не пристало лично заниматься такой глупостью, как мигание лампочками.
Есть лампочки (LED), подключенные к GPIO выводам - красная и зеленая.
Каждая из них может быть в 3-х состояниях - вкл, выкл и мигает.
Для того, чтобы не отвлекать важный процесс, миганием занимается отдельный скрипт. А важный процесс просто пишет в файл признака соответствующее значение лампочки - on, off или blink. Если файла нет - значит лампочка не горит.
Скрипт на bash под катом.
7 нояб. 2016 г.
debian 8.x - festival + asterisk
== debian 8.x - festival + asterisk ==
* Ставим
Пишем в него
Пишем в него (в конец) - включаем русский язык
* Ставим
apt-get install festival festvox-ru* Правим файл /etc/default/festival
Пишем в него
RUN_FESTIVAL=yes* Правим файл /etc/festival.scm
Пишем в него (в конец) - включаем русский язык
;; set russian voice (comment the following 2 lines to use british_american) (language_russian) (set! voice_default 'voice_msu_ru_nsh_clunits)* Правим файл /etc/asterisk/festival.conf и создаем каталог (обязательно!) - иначе будет заикаться
usecache=yes cachedir=/var/lib/asterisk/festivalcache* Копируем инит и разрешаем его, чтобы сервис запустился
cp /usr/share/doc/festival/examples/festival.init /etc/init.d/festival update-rc.d festival defaultsИз плюсов - все уже в пакетах, включая русский язык и работает сразу.
15 сент. 2016 г.
Collect lspush.exe information (Lansweeper) by ftp
Collect information for Lansweeper (TM) by ftp when your notebooks anywhere. Use it by scheduler.
@echo off :gettemp set TMPFILE=%TMP%\%RANDOM%.tmp if exist "%TMPFILE%" GOTO :gettemp if exist c:\temp\lansweeper GOTO :run mkdir c:\temp\lansweeper :run start /wait lspush.exe /folder "c:\temp\lansweeper" echo open fbox.site.com>%TMPFILE% echo lansweeper>>%TMPFILE% echo secretpassword>>%TMPFILE% echo bin>>%TMPFILE% echo prompt>>%TMPFILE% echo mput c:\temp\lansweeper\*.txt>>%TMPFILE% echo bye>>%TMPFILE% ftp.exe -s:%TMPFILE% >null del %TMPFILE% del c:\temp\lansweeper\*.txt exit
30 авг. 2016 г.
Quick copy big number of files to slow flash drive
Проблема - DICOM исследование состоит из большого количества мелких файлов. Если их писать последовательно, просто смонтировав флешку, получается очень медленно.
Решение - создавать образ диска на HDD, писать туда, затем переносить образ через dd. Создаем таблицу разделов на флешке с двумя разделами - с тем, что нужно записать и остатком флешки.
Решение - создавать образ диска на HDD, писать туда, затем переносить образ через dd. Создаем таблицу разделов на флешке с двумя разделами - с тем, что нужно записать и остатком флешки.
#!/bin/bash # 1st argument - name of disk device (e.g. /dev/sdb or /dev/flash etc) # 2nd argument - source directory name #FLASH_SIZE=`cat /sys/block/$1/size` FLASH_SIZE=`du -s -k $2 |sed 's/\(.*[0-9]\)\(.*\)/\1*2+65535/'|bc` date echo $FLASH_SIZE sectors to write... dd if=/dev/zero of=/tmp/flash.img bs=512 count=$FLASH_SIZE echo dd image created... /sbin/losetup /dev/loop0 /tmp/flash.img /sbin/losetup -a /sbin/mkfs -t vfat /dev/loop0 echo vfat fs on image made... mount /dev/loop0 /mnt cpstart=$(date +%s.%N); cp -r $2/* /mnt cpdur=$(echo "$(date +%s.%N) - $cpstart" | bc); printf "Copied in %.6f seconds\n" $cpdur echo files copied to image... umount /mnt & wait dd if=/dev/zero of=$1 bs=512 count=1 echo -e "n\np\n1\n2048\n+"$FLASH_SIZE"\nt\nb\na\nw\nq\n"|fdisk $1 >/dev/null dd if=/dev/loop0 of=$1'1' bs=512 count=$FLASH_SIZE & wait echo image moved to flash... /sbin/losetup -D rm /tmp/flash.img echo -e "n\np\n2\n\n\nt\n2\nb\nw\nq\n"|fdisk $1 >/dev/null mkfs -t vfat $1'2' & wait echo cleaning done. date
11 авг. 2016 г.
От Стокгольма до Лаппеенранты за 7 дней - перегон яхты из Швеции.
Участники:
ТС - я, рулильщик
БР - брат, таксист на дальние расстояния.
Д - дочь, студентка, кок и швартовая команда.
АИ - наша единственная надежда, навигатор и шкотовый.
День (-1), 08.07
Путешествие началось вечером в пятницу. Загрузив вещи в машину, в 18:30 мы выехали из Питера. Нашей целью была паромная переправа в Турку. Гугл утверждал, что ехать туда около 4,5 часов, но по дороге был большой элемент неопределённости - финская граница в пятницу вечером. Поэтому выехали мы с запасом, поставив себе задачу пройти границу до полуночи. Около 10 часов вечера забрали от выборгского замка АИ с вещами.
На границу приехали около 23:30 и, на удивление, очередь там оказалось совсем не большой. Примерно в 00:10 выехали в Финляндию.
ТС - я, рулильщик
БР - брат, таксист на дальние расстояния.
Д - дочь, студентка, кок и швартовая команда.
АИ - наша единственная надежда, навигатор и шкотовый.
День (-1), 08.07
Путешествие началось вечером в пятницу. Загрузив вещи в машину, в 18:30 мы выехали из Питера. Нашей целью была паромная переправа в Турку. Гугл утверждал, что ехать туда около 4,5 часов, но по дороге был большой элемент неопределённости - финская граница в пятницу вечером. Поэтому выехали мы с запасом, поставив себе задачу пройти границу до полуночи. Около 10 часов вечера забрали от выборгского замка АИ с вещами.
На границу приехали около 23:30 и, на удивление, очередь там оказалось совсем не большой. Примерно в 00:10 выехали в Финляндию.
2 авг. 2016 г.
Установка DCM4CHEE для Windows и Debian
Windows
Берем
инсталляцию MYSQL отсюда
- http://dev.mysql.com/downloads/windows/
Берем
инсталляцию JDK отсюда
- http://www.oracle.com/technetwork/java/javase/downloads/index.html
или
(для
JDK7) http://www.oracle.com/technetwork/java/javase/downloads/jdk7-downloads-1880260.html
сам
dcm4chee берем отсюда
- https://sourceforge.net/projects/dcm4che/files/dcm4chee/
Jboss
для него берем отсюда
- https://sourceforge.net/projects/jboss/files/JBoss/JBoss-4.2.3.GA/
Ставим
MySQL.
Ставим JDK. Нужно ставить 1.7, так
как с 8 не работает jmx-console
Ставим JDK. Нужно ставить 1.7, так как с 8 не работает jmx-console
4 июн. 2016 г.
Нагрузочное тестирование Asterisk
На дополнительном Asterisk cоздаем call file с именем test:
С помощью скрипта закидываем его на прозвон в цикле:
Channel: SIP/192.168.0.1/100 application:Playback data:demo-congrats MaxRetires:1 RetryTime:60 WaitTime:30 Priority:1
С помощью скрипта закидываем его на прозвон в цикле:
#!/bin/bash while true do cp test test.call chown asterisk test.call chgrp asterisk test.call tmpname=$RANDOM.call mv test.call /var/spool/asterisk/outgoing/$tmpname sleep 60 done
20 мая 2016 г.
Lansweeper lspush.exe + openvpn - collect data on connect
The task:
Collect data from mobile computers after connecting into corporate network with openvpn client for windows.
The problem:
Openvpn client wait while "up" script ends. The lansweeper server not available because connection still not established.
How to resolve:
Run script and return control to connection. Run lansweeper client 20 seconds later.
=============================================
1. Use "up" option of openvpn
# connection.ovpn
script-security 2 system
up "c:\\adm\\up.cmd"
=============================================
2. Run vbscript and return to connection without waiting script
rem c:\adm\up.cmd
cscript.exe c:\adm\lspush.vbs
=============================================
Rem c:\adm\lspush.vbs
Set WshShell = WScript.CreateObject("WScript.Shell")
call WshShell.Run("c:\adm\lspush.cmd",0,false)
=============================================
3. Openvpn connection established and lspush.exe runs after timeout, when lansweeper server already availiable.
rem c:\adm\lspush.cmd
timeout /t 20
c:\adm\lspush.exe my.lansweeper.loc
Collect data from mobile computers after connecting into corporate network with openvpn client for windows.
The problem:
Openvpn client wait while "up" script ends. The lansweeper server not available because connection still not established.
How to resolve:
Run script and return control to connection. Run lansweeper client 20 seconds later.
=============================================
1. Use "up" option of openvpn
# connection.ovpn
script-security 2 system
up "c:\\adm\\up.cmd"
=============================================
2. Run vbscript and return to connection without waiting script
rem c:\adm\up.cmd
cscript.exe c:\adm\lspush.vbs
=============================================
Rem c:\adm\lspush.vbs
Set WshShell = WScript.CreateObject("WScript.Shell")
call WshShell.Run("c:\adm\lspush.cmd",0,false)
=============================================
3. Openvpn connection established and lspush.exe runs after timeout, when lansweeper server already availiable.
rem c:\adm\lspush.cmd
timeout /t 20
c:\adm\lspush.exe my.lansweeper.loc
26 апр. 2016 г.
20 апр. 2016 г.
Install dcm4chee-cdw on raspberry pi 2 (or raspberry pi model b) part 2 - writing dicom to flashdrive
Replace path to mkisofs and cdrecord to own scripts.
Connect button and LED to gpio connector. (button - pins 9/11, led - pins 13/14)
Connect button and LED to gpio connector. (button - pins 9/11, led - pins 13/14)
Scripts will be availiable later.
13 апр. 2016 г.
Install dcm4chee-cdw on raspberry pi 2 (or raspberry pi model b)
1. Download minimal Raspberry Pi image from https://downloads.raspberrypi.org/raspbian_lite_latest,
write it on SD-card,
on any Linux - apply gparted to /dev/sdb, resize partition up to flash size.
2. Load system on Raspberry. Connect by ssh.
write it on SD-card,
on any Linux - apply gparted to /dev/sdb, resize partition up to flash size.
2. Load system on Raspberry. Connect by ssh.
29 мар. 2016 г.
Using Cisco SPA504G Yealink t27 t22p Fanvil C66 X5S Grandstream GXP1628 BLF lamps as status indicators and speed dial - Asterisk
; extensions.conf [Hints] exten => 9901,hint,Custom:LoginStat01 exten => 9801,hint,Custom:QueueStat01 exten => 9701,hint,Custom:PauseStat01 [Internal-Main] ; Operator login/logout ================================== exten => _99XX,1,Answer same => n,noCDR() same => n,GotoIf($["${DEVICE_STATE(Custom:LoginStat${CALLERID(num)})}" = "NOT_INUSE"]?logout) same => n,Set(DEVICE_STATE(Custom:LoginStat${CALLERID(num)})=NOT_INUSE) ; login indicator becomes green ; do something and hangup same => n(logout),NoOp("Выход из системы") same => n,Set(DEVICE_STATE(Custom:LoginStat${CALLERID(num)})=INUSE) ; login indicator becomes red ; do something and hangup
14 мар. 2016 г.
"Правильная" таблица CDR
<pre>
CREATE TABLE `cdr` (
`id` int(11) unsigned NOT NULL,
`calldate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL DEFAULT '',
`src` varchar(80) NOT NULL DEFAULT '',
`dst` varchar(80) NOT NULL DEFAULT '',
`dcontext` varchar(80) NOT NULL DEFAULT '',
`channel` varchar(80) NOT NULL DEFAULT '',
`dstchannel` varchar(80) NOT NULL DEFAULT '',
`lastapp` varchar(80) NOT NULL DEFAULT '',
`lastdata` varchar(80) NOT NULL DEFAULT '',
`duration` int(11) NOT NULL DEFAULT '0',
`billsec` int(11) NOT NULL DEFAULT '0',
`disposition` varchar(45) NOT NULL DEFAULT '',
`amaflags` int(11) NOT NULL DEFAULT '0',
`accountcode` varchar(20) NOT NULL DEFAULT '',
`userfield` varchar(255) NOT NULL DEFAULT '',
`uniqueid` varchar(32) NOT NULL DEFAULT '',
`linkedid` varchar(32) NOT NULL DEFAULT '',
`sequence` varchar(32) NOT NULL DEFAULT '',
`peeraccount` varchar(32) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `cdr`
ADD PRIMARY KEY (`id`),
ADD KEY `calldate` (`calldate`),
ADD KEY `dst` (`dst`),
ADD KEY `src` (`src`),
ADD KEY `uniqueid` (`uniqueid`),
ADD KEY `accountcode` (`accountcode`);
ALTER TABLE `cdr`
MODIFY `id` int(11) unsigned NOT NULL AUTO_INCREMENT;
CREATE TABLE `cdr` (
`id` int(11) unsigned NOT NULL,
`calldate` datetime NOT NULL DEFAULT '0000-00-00 00:00:00',
`clid` varchar(80) NOT NULL DEFAULT '',
`src` varchar(80) NOT NULL DEFAULT '',
`dst` varchar(80) NOT NULL DEFAULT '',
`dcontext` varchar(80) NOT NULL DEFAULT '',
`channel` varchar(80) NOT NULL DEFAULT '',
`dstchannel` varchar(80) NOT NULL DEFAULT '',
`lastapp` varchar(80) NOT NULL DEFAULT '',
`lastdata` varchar(80) NOT NULL DEFAULT '',
`duration` int(11) NOT NULL DEFAULT '0',
`billsec` int(11) NOT NULL DEFAULT '0',
`disposition` varchar(45) NOT NULL DEFAULT '',
`amaflags` int(11) NOT NULL DEFAULT '0',
`accountcode` varchar(20) NOT NULL DEFAULT '',
`userfield` varchar(255) NOT NULL DEFAULT '',
`uniqueid` varchar(32) NOT NULL DEFAULT '',
`linkedid` varchar(32) NOT NULL DEFAULT '',
`sequence` varchar(32) NOT NULL DEFAULT '',
`peeraccount` varchar(32) NOT NULL DEFAULT ''
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;
ALTER TABLE `cdr`
ADD PRIMARY KEY (`id`),
ADD KEY `calldate` (`calldate`),
ADD KEY `dst` (`dst`),
ADD KEY `src` (`src`),
ADD KEY `uniqueid` (`uniqueid`),
ADD KEY `accountcode` (`accountcode`);
ALTER TABLE `cdr`
MODIFY `id` int(11) unsigned NOT NULL AUTO_INCREMENT;
Подписаться на:
Сообщения (Atom)