Archive

Archive for January, 2009

GnuPG

January 30th, 2009 No comments

Начинаем использовать.. мануал:
http://www.i2r.ru/static/282/out_14445.shtml
http://habrahabr.ru/blogs/ubuntu/50631/
Ожидаем также, когда его к roundcube прикрутят.

Tags:

AWK

January 30th, 2009 No comments
Tags:

Pure-FTPD

January 29th, 2009 No comments

Много вкусностей, перечислены они на главной странице проекта. Имеется клевая веб-админка UserManager, работает с mysql.
http://www.pureftpd.org
http://www.lissyara.su/?id=1823
/usr/ports/www/usermanager
/usr/ports/ftp/pure-ftpd

Добавляем поддержку SSL/TLS
Меняем в /usr/local/etc/pure-ftpd.conf параметр:

TLS                      1

Перезапускаем pure-ftpd.

Кладем сюда наш сертификат:

/etc/ssl/private/pure-ftpd.pem

Как клиент можно использовать lftp собранного с поддержкой openssl.

Tags:

Немного о SSH Tunnels

January 28th, 2009 No comments

Тунель: remotehost -> 127.0.0.1:3389 -ssh-> case.net.ru -> 172.16.127.4:3389

remotehost# ssh -f -N -o port=222 -L 127.0.0.1:3389:172.16.127.4:3389 case.net.ru

Тунель: case.net.ru -> 127.0.0.1:8080 -ssh-> remotehost -> yandex.ru 80

remotehost# ssh -f -N -R 127.0.0.1:8080:yandex.ru:80 case.net.ru

Используется для: построения цепей, соединения двух клиентов за натами, шифрования соединения.

Tags: ,

Пример SNMP управления коммутатором

January 23rd, 2009 No comments

Переключения порта xbox’а (что бы в live не ломился):

1
2
3
4
5
6
7
8
9
10
#!/bin/sh
 
if [ "`snmpget -v 1 -c public des IF-MIB::ifAdminStatus.12 | grep up`" ]
then
        echo "disabling port 12.."
        snmpset -v 1 -c private des IF-MIB::ifAdminStatus.12 i 2 > /dev/null
else
        echo "enabling port 12.."
        snmpset -v 1 -c private des IF-MIB::ifAdminStatus.12 i 1 > /dev/null
fi

Заметки по shell

January 23rd, 2009 No comments

Взято вот от сюда: http://citforum.ru/programming/shell/

& асинхронное (фоновое) выполнение предшествующей команды;
&& выполнение последующей команды при условии нормального завершения предыдущей, иначе игнорировать;
|| выполнение последующей команды при ненормальном завершении предыдущей, иначе игнорировать.

wait [pid] - ожидание завершения процесса

группировка команд:
k1 && {k2; k3}
{k1; k2} &

subshell:
(cd ..; ls) ls

3.4. Генерация имен файлов.

При генерации имен используют метасимволы: * произвольная (возможно пустая) последовательность символов;
? один произвольный символ;
[...] любой из символов, указанных в скобках перечислением и/или с указанием диапазона;
cat f* выдаст все файлы каталога, начинающиеся с "f";
cat *f* выдаст все файлы, содержащие "f";
cat program.? выдаст файлы данного каталога с однобуквенными расширениями, скажем "program.c" и "program.o", но не выдаст "program.com";
cat [a-d]* выдаст файлы, которые начинаются с "a", "b", "c", "d". Аналогичный эффект дадут и команды "cat [abcd]*" и "cat [bdac]*".

cat ${a}prim

c=`expr $a + $b`
c=`expr $x '*' $y`

${x-new} в качестве значения "x" будет выдано "new",
${y=new} в качестве значения "у" будет присвоено "new",
${z?new} в качестве значения "z" будет выдано "z: new" и

[u@case.net.ru]$ y=${f:=30}; echo "y = $y; f = $f"
y = 30; f = 30
[u@case.net.ru]$ unset f
[u@case.net.ru]$ y=${f-30}; echo "y = $y; f = $f"
y = 30; f =
[u@case.net.ru]$

локальные и внешнии переменные:
a=10
set -a a
export a

$ set `ifconfig em0|grep inet`
$ echo $2
80.92.110.82

echo $0 - имя расчета
echo $? - код завершения
echo $$ - идентификатор последнего процесса
echo $! - идентификатор последнего фонового процесса
echo $* - значения параметров, как строки
echo $@ - значения параметров, как слов

УСЛОВИЯ ПРОВЕРКИ ФАЙЛОВ: -f file файл "file" является обычным файлом;
-d file файл "file" - каталог;
-с file файл "file" - специальный файл;
-r file имеется разрешение на чтение файла "file";
-w file имеется разрешение на запись в файл "file";
-s file файл "file" не пустой.

УСЛОВИЯ ПРОВЕРКИ СТРОК: str1 = str2 строки "str1" и "str2" совпадают;
str1 != str2 строки "str1" и "str2" не совпадают;
-n str1 строка "str1" существует (непустая);
-z str1 строка "str1" не существует (пустая).

УСЛОВИЯ СРАВНЕНИЯ ЦЕЛЫХ ЧИСЕЛ: x -eq y "x" равно "y",
x -ne y "x" неравно "y",
x -gt y "x" больше "y",
x -ge y "x" больше или равно "y",
x -lt y "x" меньше "y",
x -le y "x" меньше или равно "y".

СЛОЖНЫЕ УСЛОВИЯ:

Реализуются с помощью типовых логических операций: ! (not) инвертирует значение кода завершения.
-o (or) соответствует логическому "ИЛИ".
-a (and) соответствует логическому "И".

Tags:

Backup/Resotre with Bacula

January 22nd, 2009 No comments

Система резервного копирования и восстановления данных.
http://www.lissyara.su/?id=1760
http://www.bog.pp.ru/work/bacula.html

Все достаточно хорошо расписано уже до меня ) Модульная архитектура, кроссплатформенность, инкреметное копирование.

Tags:

Конвертирование mkv в mp4 для просмотра на XBOX360

January 19th, 2009 No comments

Задача: использовать xbox 360 для просмотра HDTV с сервера.

Проблема: почти все HDTV видео выкладывают в формате h.264, звук в формате aac 6-ch и все это в контейнере mkv. Xbox 360 в свою очередь умеет читать видео h.264, aac 2-ch и контейнер mp4.

Нам понадобится:

  • mpeg4ip для mp4created
  • ffmpeg с поддержкой faac, для перекодирования 6-и канального звука в 2-х канальный
  • mkvtoolnix для выдирания из mkv аудио и видео дорожек

Используя mkvinfo узнаем нужные нам дорожки и битрейт видео.
Далее:

1
2
3
4
5
6
mkvextract tracks input.mkv 1:video.h264 2:audio.ac3
mp4creator -create=video.h264 -rate=29.970 output.mp4
mp4creator -hint=1 output.mp4
ffmpeg -y -i audio.ac3 -vn -acodec libfaac -ac 2 -ab 384kbits audio.aac
mp4creator -c audio.aac -interleave -optimize output.mp4
rm audio.aac audio.ac3 video.mp4

Так же читаем по следующим ссылкам:
- http://oddmanout.wordpress.com/2008/01/26/converting-an-mkv-h264-file-to-ps3-mp4-without-re-encoding-on-mac-os-x/
- http://torrents.ru/forum/viewtopic.php?t=632076

Небольшой shell:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#!/bin/sh
 
if ! [ -f "$1" ]
then
        echo "usage: $0 filename"
        exit
fi
 
vt=1
at=2
fps=23.976
fps=29.970
audio=ac3
 
filename=$1
 
size=`stat "$filename" | awk '{print $8}'`
if  [ 4314967296 -lt "$size" ]
then
        mkvmerge -o "`echo $filename|sed -e 's/mkv/Part.mkv/'`" --split 4G "$filename"
        mask="`echo $filename|sed -e 's/mkv/Part-*.mkv/'`"
        files=`ls $mask`
else
        files=$filename
fi
 
for i in $files
do
        mkvextract tracks "$i" $vt:video.h264 $at:audio.$audio
        mp4creator -create=video.h264 -rate=$fps output.mp4
        mp4creator -hint=1 output.mp4
        if [ "$audio" = "dts" ]
        then
                mplayer -vo null -ao pcm audio.dts
                ffmpeg -y -i audiodump.wav -vn -acodec libfaac -ac 2 -ab 384kbits audio.aac
                rm audiodump.wav
        else
                ffmpeg -y -i audio.ac3 -vn -acodec libfaac -ac 2 -ab 384kbits audio.aac
        fi
        mp4creator -c audio.aac -interleave -optimize output.mp4
        rm audio.aac audio.$audio video.h264
        outfile=`echo $i|sed -e 's/mkv/mp4/'`
        mv output.mp4 "$outfile"
        mp4creator -list $outfile
done

Т.к. xbox не поддерживает профиль кодирования h264 выше чем 4.1 – приходится его менять. Пока что делается так:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
#!/bin/sh
 
if ! [ -f "$1" ]
then
        echo "usage: $0 filename"
        exit
fi
 
vt=`mp4creator --list $1|grep video|awk '{print $1}'`
at=`mp4creator --list $1|grep audio|awk '{print $1}'`
fps=`mp4creator --list $1|grep video|awk '{print $11}'`
 
mp4creator --extract=$vt $1
mv $1.t$vt video.h264
mp4creator --extract=$at $1
mv $1.t$at audio.aac
 
echo -n "demuxed? [yes/no]: "
while read x
do
        if [ "$x" = "yes" ]
        then
                break
        else
                echo -n "demuxed? [yes/no]: "
        fi
done
 
mp4creator -create=video.h264 -rate=$fps output.mp4
mp4creator -hint=1 output.mp4
mp4creator -c audio.aac -interleave -optimize output.mp4
mv output.mp4 $1
rm audio.aac video.h264

Как только спрашивает demuxed – в hex-редакторе (например bpatch) открываем video.h264 и меняем 8-й байт с 33 на 29.

Tags: ,

multiping

January 19th, 2009 No comments

Вадим написал утилитку для проверки разных каналов сети Интернет. Выкладываю ее переделанный код для моих каналов Зелком и Стрим.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
#!/bin/sh
 
usage="usage: $0 hostname [-p pool_number] [-t] [-c ping_count]
tpool_number - 0 for real IP address, 1..4 - for NAT pool number
t-t - do traceroute instead of just pingn"
 
host=$1
[ "x$host" = "x" ] && echo -e "$usage" && exit
 
shift
 
pingcount=3
poolnumber=""
tracemode=0
 
while [ "x$1" != "x" ] ; do
        case "$1" in
                "-p")
                        shift
                        poolnumber="$1"
                ;;
                "-c")
                        shift
                        pingcount="$1"
                ;;
                "-t")
                        tracemode=1
                ;;
        esac
        shift
done
 
ips="0 213.79.110.123 1 `ifconfig ng0|grep inet|awk '{print $2}'`"
 
set $ips
 
while [ "x$1" != "x" ] ; do
        if [ "x$poolnumber" = "x" -o "x$1" = "x$poolnumber" ] ; then
 
                echo "******************************************************************************"
                if [ "$1" -eq "0" ] ; then
                        echo "* TESTING TARGET FROM: ZELCOM                                                *"
                else
                        echo "* TESTING TARGET FROM: STREAM                                                 *"
                fi
                echo "******************************************************************************"
 
                if [ "x$tracemode" = "x1" ] ; then
                        sudo traceroute -I -s $2 $host
                else
                        sudo ping -S $2 -c $pingcount $host
                fi
 
        fi
        shift 2
done
Tags:

D-Link DSL-2500U/BRU/D

January 19th, 2009 No comments

adsl Затарился данной железкой для подключения к Стриму. Сначала настроил ее в режиме роутера – легла через 10 минут после работы торрента. Настроил в режиме моста, а VPN устанавливаю с помощью mp4 – все красиво и стабильно. Переключаюсь между каналами с помощью route change default, для обслуживания доступны оба внешних ip, для динамического dns используется DynDNS. Внутри железки кстати Линукс с busybox и даже есть шелл.

Tags: ,