Asterisk: импорт из Master.csv в Postgresql

postgres=# CREATE USER ast_user with password 'xxxxxxx';
CREATE ROLE
postgres=# CREATE DATABASE ast_db with owner ast_user;
CREATE DATABASE
postgres=#exit

psql ast_db ast_user
ast_db=> CREATE TABLE cdr (
calldate timestamp with time zone DEFAULT now() NOT NULL,
clid character varying(80) DEFAULT '' NOT NULL,
src character varying(80) DEFAULT '' NOT NULL,
dst character varying(80) DEFAULT '' NOT NULL,
dcontext character varying(80) DEFAULT '' NOT NULL,
channel character varying(80) DEFAULT '' NOT NULL,
dstchannel character varying(80) DEFAULT '' NOT NULL,
lastapp character varying(80) DEFAULT '' NOT NULL,
lastdata character varying(80) DEFAULT '' NOT NULL,
duration bigint DEFAULT 0::bigint NOT NULL,
billsec bigint DEFAULT 0::bigint NOT NULL,
disposition character varying(45) DEFAULT '' NOT NULL,
amaflags bigint DEFAULT 0::bigint NOT NULL,
accountcode character varying(20) DEFAULT '' NOT NULL,
uniqueid character varying(32) DEFAULT '' NOT NULL,
userfield character varying(255) DEFAULT '' NOT NULL
);
CREATE TABLE

Устанавливаем поддержку постгреса в Perl:

perl -e shell -MCPAN
install DBI::DBD
install DBD::Pg

Создаем скрипт для переноса даных:

Читати далі

Gentoo Xen 4

Повесть о том как я Xen4 мучал… или он меня…..
Что мы имеем:

uname -a
Linux Gentoo 2.6.34-xen-r4 #3 SMP Sat Jan 1 19:30:46 EET 2011 x86_64 AMD Phenom(tm) II X4 925 Processor AuthenticAMD GNU/Linux

И почти мертвый винт на 500Г

  5 Reallocated_Sector_Ct   0x0033   090   090   140    Pre-fail  Always   FAILING_NOW 873

Перед установкой пакетов необходимо снять с них архитектурное маскирование (~x64):

echo "app-emulation/xen
app-emulation/xen-tools
sys-kernel/xen-sources" >> /etc/portage/package.keywords

До начала сборки нужно выполнить следующие шаги:

1. Добавить в /etc/make.conf опции компилятора:

      CFLAGS="-march=native -O2 -pipe -fomit-frame-pointer -mfpmath=sse -funroll-loops -mno-tls-direct-seg-refs"
      CXXFLAGS="${CFLAGS}"

2. Там же (в /etc/make.conf), можно включить опции сборки бинарных пакетов (готовые пакеты emerge разместит в /usr/portage/packages), они пригодятся для ускоренного развертывания domU:

      FEATURES="buildpkg"

3. Пересобрать текущее окружение с новой опцией компилятора, которая нужна корректной работы системного окружения с гипервизором xen (заодно построятся бинарные пакеты окружения):

      emerge -evat world

Предварительный этап окончен, можно запускать сборку/установку пакетов xen, xen-tools и исходников адаптированного для Xen ядра — xen-sources:

emerge -av xen-sources xen xen-tools

Читати далі

VirtualBox на сервере Gentoo без графической оболочки

Небольшой мануал для установки VirtualBox на сервер в котором нет Х-ов Установку будем производить на Gentoo, клиентской машиной будет Debian Ставим ВиртуалБокс ACCEPT_KEYWORDS=”~amd64″ USE=”headless -chm -hal -opengl -qt4 rdesktop-vrdp vboxwebsrv” emerge -av /usr/portage/app-emulation/virtualbox-bin/virtualbox-bin-3.2.12.ebuild Создаем виртуальную машину (тоесть ее описание в конфигах) VBoxManage createvm –name “Debian” –register –basefolder /data/Virtual/ Если нужно смотрим типы ОС VBoxManage list … Читати далі

Балансування навантаження з допомогою Nginx

Переклад статті Use Nginx for Proxy Services and Software Load Balancing

Серед додаткових особливостей nginx є можливість використання його як проксі (front end proxy) для передачі запитів на інші веб-сервери, Nginx також може виступати в якості Front end інтерфейсу для кластеру з серверів і навіть для балансування навантаження (load balancer).

Розглянемо наступні витримки конфігурації, які описують кластер appcluster:

Уривок файлу : nginx.conf

http {
  # [...]

  upstream appcluster {
     server lollipop.ducklington.net:8801;
     server lollipop.ducklington.net:8802;
     server lollipop.ducklington.net:8803;
     server lollipop.ducklington.net:8804;
     server simons.ducklington.net:8801;
     server simons.ducklington.net:8802;
     server simons.ducklington.net:8803;
     server simons.ducklington.net:8804;
     }

  # [...]

  server {
    listen 21.43.56.87:80;
    server_name ducklington.org www.ducklington.org;

    location / {
       proxy_pass  http://appcluster;
       }
    }

    # [...]
  }

У цьому прикладі ми описали просте балансування по принципу round-robin за допомогою директиви upstream.

Всередині цього блоку ми описали вісім серверів, кожен з яких працює на різних хостах і портах.
Конфігурація блоку upstream повинна бути разташована на початку блоку http конфігураційного файлу nginx.conf.

Сервери, що працюють на портах з 8801 по 8804 на хостах lollipop.ducklington.net і simons.ducklington.net отримають одинакову кількість запитів направлених в блок appcluster.

В блоці server Nginx налаштований для прослуховування запитів на певну IP-адресу і порт (наприклад, 21.43.56.87 і 80), і відповідати на запити до доменів ducklington.org і www.ducklington.org.

Усі запити про виділення ресурсів у цьому домені (наприклад, /) будуть передані у http://appcluster, який описаний в директиві upstream.

Читати далі

Подборка SQL запросов

Допустим у вас есть номер телефона рекламного отдела и PR-манагеры пустили какую-то рекламу в сентябре. Задача: найти всех клиентов которые позвонили в сентябре первый раз в жизни, но при этом им, что-то не понравилось и они не звонили после сентября. Инфа нужна, чтоб промыть им мозги… 🙂 Вот, что у меня получилось сходу: … SELECT … Читати далі

Не пускает анонима на сервер Proftpd

Поставил Proftpd, сконфигурил…. а он взял и начал ругаться на недоступность папки для анонимного пользователя Ноя 08 18:55:03 localhost proftpd[29469] 127.0.0.1: ProFTPD 1.3.3c (maint) (built Пнд Ноя 8 2010 18:47:55 EET) standalone mode STARTUP Ноя 08 18:55:12 localhost proftpd[29481] 127.0.0.1 (10.0.1.100[10.0.1.100]): FTP session opened. Ноя 08 18:55:12 localhost proftpd[29481] 127.0.0.1 (10.0.1.100[10.0.1.100]): ftp: Directory ~/ is … Читати далі

Работа с Postgresql: настройка, масштабирование

Книга Работа с Postgresql: настройка, масштабирование является справочным пособием по настройке и масштабированию Postgresql. В книге иследуются вопросы по настройки производительности Postgresql, репликации и кластеризации. Изобилие реальных примеров позволит как начинающим, так и опытным разработчикам быстро разобратся с особенностями масштабирования Postgresql для своих приложений. http://postgresql.leopard.in.ua/ ссылка на книгу если с сайта не грузится postgresql

Правила Rewrite для поддержки ЧПУ на серверах под управлением Nginx для DLE

После перехода на с Apache на связку Nginx+spawn-cgi у меня некоректно запустились сайті на DLE. Причем проблемы была именно в ссылках ЧПУ. Обычные ссылки newsid=xxx прекласно работали. Решение проблемы В конфиге Nginx вместо : # if (!-e $request_filename) { # rewrite ^(.+)$ /index.php?q=$1 last; Вставляем такой код: rewrite ^/page/(.*)$ /index.php?cstart=$1 last; rewrite ^/([0-9]+)/([0-9]+)/([0-9]+)/page,([0-9]+),([0-9]+),(.*).html(/?)+$ /index.php?subaction=showfull&year=$1&month=$2&day=$3&news_page=$4&cstart=$5&news_name=$6 last; … Читати далі

Проблема с нумерацией сетевых интерфейсов в Gentoo

В случае если менять сетевые интерфейсы на системе с генту ( как вариант замена сгоревшей), то следующая новая сетевая карта получит индекс на единицу больший. Но иногда это не оправдано, когда в системе 3 сетевые карты, а вы заменили 2 из них… в итоге получаем : eth1,eth3,eth4 … не очень удобно и не практично. Чтоб … Читати далі