Разные заметки

суббота, 1 июня 2019 г.

Kamailio автозапуск с помощью SystemD в CentOS7 при установке из исходников

При установке из исходников, необходимо настроить вручную автозапуск Kamailio, при старте и чтобы управлять службой с помощью systemd.

Для этого в пакете исходников есть файлы в каталоге /usr/src/kamailio/pkg/kamailio/centos/7/

Но в них попались ошибки.
Итак:

1. Копируем файлы

cp /usr/src/kamailio/pkg/kamailio/centos/7/kamailio.service /usr/lib/systemd/system/kamailio.service
cp /usr/src/kamailio/pkg/kamailio/centos/7/kamailio.sysconfig /etc/sysconfig/kamailio
cp /usr/src/kamailio/pkg/kamailio/centos/7/kamailio.tmpfiles /etc/tmpfiles.d/kamailio.conf



2. Приводим к рабочему виду


Файл /etc/tmpfiles.d/kamailio.conf - указывает системе при загрузке создать в области tmpfs, а точнее в каталоге /run каталог kamailio принадлежностью к пользователю-группе kamailio: kamailio.
Содержимое файла:

d /run/kamailio 0750 kamailio kamailio - -

В исходниках вместо "d" стояла "D",  каталог не создавался.


Файл /usr/lib/systemd/system/kamailio.service настраиваем так:

[Unit]
Description=Kamailio (OpenSER) - the Open Source SIP Server
Documentation=man:kamailio(8) https://www.kamailio.org/
Wants=network-online.target
After=network-online.target
After=mysqld.service           # добавлено
Requires=mysqld.service        # добавлено

[Service]
Type=forking
WorkingDirectory=/run/kamailio

# мои настройки расположения файлов и параметров

Environment='CFGFILE=/usr/local/etc/kamailio/kamailio.cfg'
Environment='SHM_MEMORY=2048'
Environment='PKG_MEMORY=256'
EnvironmentFile=/etc/sysconfig/kamailio
TimeoutSec=60

# PIDFile requires a full absolute path
PIDFile=/run/kamailio/kamailio.pid

# ExecStart requires a full absolute path
ExecStart=/usr/local/sbin/kamailio -f $CFGFILE -P /run/kamailio/kamailio.pid -m $SHM_MEMORY -M $PKG_MEMORY

# ExecStopPost
ExecStopPost=/usr/bin/rm -f /run/kamailio/kamailio.pid

Restart=on-failure

User=kamailio
Group=kamailio
; For each TCP or TLS endpoint connection is requred file descriptor
LimitNOFILE=99999


[Install]
WantedBy=multi-user.target


Редактируем строку ExecStart=/usr/local/sbin/kamailio - тут необходимо проверить путь к самому файлу, потому что изначально прописано /usr/sbin/kamailio



Файл /etc/sysconfig/kamailio тоже настраиваем под себя.

Я еще выставляю права на папки Kamailio:
chown -R kamailio:kamailio /usr/local/etc/kamailio
chown -R kamailio:kamailio /usr/local/lib64/kamailio


Все.

среда, 13 февраля 2019 г.

Asterisk 1.6 vs 1.8 в одном кейсе в 2019 году


Пользователь bandys написал сразу во многих профильных чатах Телеграм:

Приветствую други. Что имеем: Asterisk 1.8 на Centos7. DAHDI собран 2.11.1 Realtime MySQL CDR тудаже пишется. ODBC. Через AMI originate инициализируется звонок сторонеей программой на произвольный номер.
В случае ответа абонента второй конец кидается в очередь. Инициируется 7 звоноков на одного свободного оператора.Операторов от 50.

Если операторов становится больше 70, астериск тупо перестает звонить. В логах ничего подозрительного кроме того, что при попытки вызова транк отвечает unavaleble. В этот момент подключиться к серверу не возможно софтфоном. Любые загруженные модули перегружаются без проблем, но безрезультатно. Помогает только перезапуск астериска. Все по SIP.

Очередь rrmemmory. Настройки все минимальные. В системе увеличен параметр максимального количество открытых файлов и всего остального. Диски ssd, xeon, 64Gb памяти. В htop, atop... нагрузки везде не большие. Транки с несколькими провайдерами уже, балансируются звонки примерно поровну.
Кодеки ulaw alaw g729.

В момент проблемы нельзя посмотреть core show channels. Говорят на прошлой инсталяции centos 6.1 asterisk 1.6 до 110 операторов сидели легко. Но он канул в лету. Всё. Больше уж не знаю что смотреть. Есть у кого то какие мысли по этому поводу? Куда ещё покапать? Инициация звонков через AMI происходит не равномерно. Бывают всплески, но с проблемой не увидел корреляции. Помогите кто чем может :)

ТТХ сервера в таком виде:



Ivan Poddubny откоментировал предыдущие сообщения:

Никакая супер-архитектура не исправит багу древней версии Астериска с дедлоком на доступе к списку каналов.
У админов и программистов есть склонность к тому, чтобы делать "умные" навороченные решения там, где достаточно простых и дешёвых. И в плане железа тоже. Нафига Астериску 64 гига памяти, например?
Или вместо сайта на php+mysql воротят кубернетис кластер, микросервисы, шину, nosql - архитектура же, масштабируемость.

1500 одновременных вызовов один Астериск легко переваривает, на машине с 4 гб. Там совсем не память узкое место. Xeon(R) CPU E5-2620 v3.   ~1300 звонков - CPU на ~60% нагружен
с cdr
и ещё mysql на той же машине
без транскодирования и записи
это транзитный. но на pbx-ах нагрузка ниже - например, на одном 400 одновременных, 1500 очередей, 1000 sip-учёток, 2000 мобильных. Там процессор попроще, всё равно нагрузка тоже выше 30% не поднимается.
без транскодинга, конечно. всё в alaw.


bandys:

По моему кейсу. Манипуляции найденые на issues не помогли. Поднятие до 11 версии астериска, так же не дали положительного результата. Теперь имеем вот такую ошибку https://issues.asterisk.org/jira/plugins/servlet/mobile#issue/ASTERISK-26956 На данный момент убран диалплан из базы. Мониторим эффект. Дальше будем пробовать опускать ОС до 6.9. Может у кого то появятся ещё идеи? Exceptionally long voice выскакивает не так часто как на 1.8, но всё же пару раз в день бывает. Хотя нагрузка на выходных не большая.

...


Продолжу свой репортаж. Сегодня был запущен asterisk 1.6 на centos 6. Целый день под нагрузкой 90 операторов отработало всё без проблем. Ночью буду поднимать на 6 центос 11 астериск. Посмотрим как себя поведёт. Видимо что то в ядре 3 не так. Понять бы что

...


bandys, [13.02.19 01:17]
[В ответ на bandys]
Доброй ночи. Продолжение. На centos6 и asterisk 1.6 всё работает стабильно. 1.8 и 11 падают. Заметил, что на 1.8 и выше транскодинг показывает 17000 почти на всех кодеках. На 1.6 порядка 3000 мксек. 1.6 держит больше 100 операторов. Версии выше фризятся при выше 50 операторов. Осталось одно отличие проверить. На 11 стоит MySQL 5.7(исторический приехал с centos7), а на 1.6 стоит 5.1 Завтра попробую

Ivan Poddubny, [13.02.19 01:25]
> Заметил, что на 1.8 и выше транскодинг показывает 17000 почти на всех кодеках. На 1.6 порядка 3000 мксек.

1.6 честно считает миллисекунды, а в более новых версиях эти значения больше не отражают реальную задержку при транскодинге.

bandys, [13.02.19 01:47]
[В ответ на Ivan Poddubny]
Понятно. Спасибо за инфу. 1.6 суд по всему во многом честнее :)



SilverJoe SPA, [13.02.19 07:07]
[В ответ на bandys]
Ты на 6 центоси собирал 1.6, 1.8 и 11?
До 13 и 16 версии не добрался?

bandys, [13.02.19 07:14]
Да, всё собирал конечно. 13 и 16 не подходят. Там AMI поменяли, а у них на нем есть не мало. Да и что то думаю не сильно бы помогло

bandys, [13.02.19 07:15]
У свича вроде 1.6 в девайсах как раз

SilverJoe SPA, [13.02.19 07:17]
[В ответ на bandys]
1.4

SilverJoe SPA, [13.02.19 07:18]
[В ответ на bandys]
А мне любопытно сравнить. Да еще на пжсипе

SilverJoe SPA, [13.02.19 07:18]
[В ответ на bandys]
Так проблема в астере или ОС?

bandys, [13.02.19 07:19]
Тут надо под нагрузку запустить второй сервак, потом думать о переделках. Попробую. Тоже мысль про пыжысип посещает

bandys, [13.02.19 07:19]
Выходит в астере

bandys, [13.02.19 07:20]
Хотя 1.6 на 7 не пробовал

SilverJoe SPA, [13.02.19 07:20]
1.6 астер на 7 центоси бы тогда собрать и проверить






SilverJoe SPA, [13.02.19 07:07]
[В ответ на bandys]
Ты на 6 центоси собирал 1.6, 1.8 и 11?
До 13 и 16 версии не добрался?

bandys, [13.02.19 07:14]
Да, всё собирал конечно. 13 и 16 не подходят. Там AMI поменяли, а у них на нем есть не мало. Да и что то думаю не сильно бы помогло

bandys, [13.02.19 07:15]
У свича вроде 1.6 в девайсах как раз

SilverJoe SPA, [13.02.19 07:17]
[В ответ на bandys]
1.4

SilverJoe SPA, [13.02.19 07:18]
[В ответ на bandys]
А мне любопытно сравнить. Да еще на пжсипе

SilverJoe SPA, [13.02.19 07:18]
[В ответ на bandys]
Так проблема в астере или ОС?

bandys, [13.02.19 07:19]
Тут надо под нагрузку запустить второй сервак, потом думать о переделках. Попробую. Тоже мысль про пыжысип посещает

bandys, [13.02.19 07:19]
Выходит в астере

bandys, [13.02.19 07:20]
Хотя 1.6 на 7 не пробовал

SilverJoe SPA, [13.02.19 07:20]
1.6 астер на 7 центоси бы тогда собрать и проверить

SilverJoe SPA, [13.02.19 07:21]
[В ответ на bandys]
А ты как ставил:
 Дахди был?
Таймерфд какой?

bandys, [13.02.19 07:22]
Дахди везде последний из 2 ветки. Дахди тулсы так же

SilverJoe SPA, [13.02.19 07:24]
[В ответ на bandys]
timerfd или как его в астерах любопытно какой использовался

bandys, [13.02.19 07:25]
Таймер с дахди же приезжает

SilverJoe SPA, [13.02.19 07:25]
[В ответ на bandys]
Волбще, справедливости ради, надо было это все тестировать вынеся мускул отдельно

SilverJoe SPA, [13.02.19 07:26]
[В ответ на bandys]
Да но не факт что астер использует именно его

bandys, [13.02.19 07:28]
Там есть в asterisk.conf internal_timing yes

bandys, [13.02.19 07:29]
Пробовал играться

SilverJoe SPA, [13.02.19 07:29]
[В ответ на bandys]
module show like timer

bandys, [13.02.19 07:30]
Смотрел. Дахдишный

SilverJoe SPA, [13.02.19 07:32]
[В ответ на bandys]
На всех версиях астера которые ты проверял стоял таймер дахди? Правильно?

SilverJoe SPA, [13.02.19 07:33]
А на проде, который на 7 центе?

bandys, [13.02.19 07:43]
[В ответ на SilverJoe SPA]
Да

bandys, [13.02.19 07:44]
[В ответ на SilverJoe SPA]
Когда там 1.8 стоял, точно дахдишный. На 11 не смотрел

SilverJoe SPA, [13.02.19 08:35]
[В ответ на bandys]
Мысль мелькнула - а нельзя оставить 1.6 транзитным с ами в сторону интеграции а для оригинаций, обработки медиа развернуть 13 или 16?

bandys, [13.02.19 08:37]
[В ответ на SilverJoe SPA]
Разделение обзвона и операторов предполагается в дальнейшем. Я ещё хочу перевести инициацию звонка из ami в call файл. Можно одним файлом запускать кучу звонков а не оригинейтить каждый

SilverJoe SPA, [13.02.19 08:41]
[В ответ на bandys]
Один коллфайл - один оригинейт
А дальше зависит от бизенс-процесса
Возможно можно 7 звонков на оператора засунуть в один диал.
Хз, надо разбираться

bandys, [13.02.19 08:50]
Говорят по ami есть ограничение 3000 запросов. Может в этом дело. Правда не нашёл официальной инфы о таком ограничении

ros tel, [13.02.19 08:54]
[В ответ на bandys]
попробуйте колфайлы подсунуть когда уперлись
если проканает, значит точно AMI

SilverJoe SPA, [13.02.19 08:56]
[В ответ на bandys]
Это не ами а таскпроцессор. А хотя может в таскпроцессоре для ами

bandys, [13.02.19 08:57]
там не на моей стороне инициация звонка. там всё сложно и не быстро

Марк Егоров, [13.02.19 08:59]
[В ответ на bandys]
Не запросов, а длинна очереди. То есть, как я понимаю, если их, запросы, влупить вообще по хардкору, то они не будут успевать обрабатываться - и будут становиться в очередь. Вот у нее 3к.

bandys, [13.02.19 08:59]
возможно. есть где почитать про это?

SilverJoe SPA, [13.02.19 09:00]
[В ответ на bandys]
Да я знаю как это делается. Проводил не раз
И разрабов уговаривал с ами перейти на ари оригинейт
Он хоть более гибок
Не помню как в ами но в ари можно кучу переменных передать
И если диалплан верный - одной командой (ари) все семь вызовов запустить на оператора

bandys, [13.02.19 09:00]
смущает, что если это та самая очередь, то почему на 1.6 всё норм

Марк Егоров, [13.02.19 09:00]
[В ответ на bandys]
Но это таск процессинг. У тебя пока его нет.

Марк Егоров, [13.02.19 09:01]
[В ответ на bandys]
Собери с дебагом.

ros tel, [13.02.19 09:02]
[В ответ на bandys]
а оригинация случайно не в синхронном режиме?

bandys, [13.02.19 09:04]
[В ответ на Марк Егоров]
Смотрел таск. Там глубины выше 30 не видел

SilverJoe SPA, [13.02.19 09:04]
[В ответ на ros tel]
+1 за вопрос!
про Async: True я и забыл спросить для АМИ

bandys, [13.02.19 09:06]
вроде да ast_manager->originate(, , , "1",0,0,OriginateTimeOut,0,("CDR(USERFIELD)=" + queue).c_str(),0, true, uniqueid);

ros tel, [13.02.19 09:07]
ётиц оно ище и на пыхе чтоль?

bandys, [13.02.19 09:07]
видимо. трока от разраба

ros tel, [13.02.19 09:09]
поряться в этом классе убедиться что выставится Async: True
можно дамп трафика снять и там поковырять

SilverJoe SPA, [13.02.19 09:09]
[В ответ на ros tel]
а какая разница. это ж внешняя система

ros tel, [13.02.19 09:09]
[В ответ на SilverJoe SPA]
у меня отзвон в такси на подобном говне работал
вставало в ступор по неизвестным причинам в любое неудобное время

SilverJoe SPA, [13.02.19 09:10]
[В ответ на ros tel]
хз. от разарба пхп зависит
у Свича вообще весь дилаплан через аги в пхп и работают его железочки и хорошо

ros tel, [13.02.19 09:11]
зависало именно на стороне пыхи
не мной было писано
выкинул к чертям, переделав на go

Ivan Poddubny, [13.02.19 09:11]
[В ответ на bandys]
очевидно, что дедлок на доступе к списку каналов, связанный с app_queue, появился в 1.8, присутствует в 11, но вы же ни один лог и ни один конфиг не показали, поэтому гадать можно долго и смысла в этом мало. Смотреть на AMI и call-файлы и прочие частности - это подход "ищу потерянные ключи под фонарём, потому что там светло".



подождем развязки....




воскресенье, 1 февраля 2015 г.

Образ Windows 7 install.wim в нескольких файлах

У меня оказывается имеется еще кое-что по теме сборки образа, но хранилось в Evernote. Отвечая на вопросы Анонима, вспомнил и вот публикую.

После того, как мы создадим свой образ, в который мы интегрировали все, что только можно - драйвера, программы, весь Internet, все столкнутся с проблемой размера.
Образ, а точнее файл WIM, становится больше чем размер DVD-диска.
И если для 64-разрядных систем это не составляет проблем при установке по сети, то при записи на DVD или создании установочной флешки, эта проблема актуальна для обоих архитектур. Проблема была в том, что максимальный размер файла в системе FAT32 не более 4 Гб.

Выход - разбивка образа на несколько DVD дисков.

понедельник, 25 февраля 2013 г.

Установка Windows 7 с помощью PXE и LINUX сервера


Дано: некий офис с компьютерами типа PC, сервер с Linux.
Задача: Сделать сервис установки системы по сети без использования платных Windows Server и др.
Решение:

понедельник, 1 октября 2012 г.

Yandex.disk на Debian без GUI

Дано: PC с Windows 7, Macbook Pro и домашний сервер с Linux Debian.
Задача: Сделать общую для всех папку для хранения документов и связать её через Яндекс.Диск

пятница, 31 августа 2012 г.

Случайно удалил иконку Launchpad в Mac OS

Случайно захватил иконку Launchpad в Dock и вытащил ее из дока.
Соответственно она удалилась.
Ну вернуть ее туда очень просто - найти Launchpad в Приложениях и перетащить на панель Dock.
А вот восcтановить функционал кнопки F4, которая в вызывает launchpad оказалось сложнее.
Нашел на забугорном форуме решение:

Open Terminal and enter the following command:
rm ~/Library/Preferences/com.apple.symbolichotkeys.plist
Then you need to re-login oder restart your MacBook.

Открываем терминал и выполняем команду. Она удалит файл где хранятся хоткеи для пользователя.
Потом выходим из сеанса или перезагружаемся и при следующем входе восстанавливаются значения по умолчанию.

понедельник, 23 июля 2012 г.

Установка Asterisk на Debian

Буду краток. Одни команды.


1. Подготовка системы:
Установка необходимых пакетов. Архиваторов. Утилиту Screen.


2. Настройка ядра:
uname -a                     -> выдает Linux srv93 2.6.32-5-amd64 #1 SMP Sun May 6 04:00:17 UTC 2012 x86_64 GNU/Linux
aptitude install linux-source-2.6.32

tar xjf /usr/src/linux-source-2.6.32.tar.bz2

ln -s /usr/src/linux-source-2.6.32 /usr/src/linux

cd /usr/src/linux

make clean && make mrproper

cp /boot/config-2.6.32-5-amd64 ./.config

make menuconfig
Выставляем опции:

Processor type and features >> Timer frequency = 1000 Hz.
Processor type and features >> [*]High Resolution Timer Option
Device Drivers >> Character Devices >> [*]HPET Timer Support

Device Drivers >> [*]Enchanced Real Time Clock Support
Library Routines >> [*]CONFIG_CRC_CCITT



make-kpkg clean

fakeroot make-kpkg --initrd --append-to-version=-mycustom kernel_image kernel_headers

dpkg -i *.deb

3. Настройка загрузки нового ядра:
grep menuentry /boot/grub/grub.cfg
nano /etc/default/grub
update-grub
grep menuentry /boot/grub/grub.cfg
reboot

uname -a             -> выдает Linux srv93 2.6.32-mycustom #1 SMP Mon Jul 23 15:05:23 MSK 2012 x86_64 GNU/Linux


4. Установка пакетов Asterisk.

aptitude install asterisk-1.6.2 asterisk-config asterisk-mp3 libasterisk-agi-perl python-asterisk

Следующие НОВЫЕ пакеты будут установлены:
  asterisk asterisk-config asterisk-core-sounds-en-gsm{a} asterisk-mp3 dahdi{a} dahdi-linux{a} debhelper{a} freetds-common{a} fxload{a} html2text{a}
  libasound2{a} libasterisk-agi-perl libc-client2007e{a} libcorosync4{a} libdirectfb-1.2-9{a} libflac8{a} libgmime-2.0-2a{a} libgsm1{a} libiksemel3{a}
  libjack-jackd2-0{a} libjpeg62{a} libnspr4-0d{a} libnss3-1d{a} libogg0{a} libopenais3{a} libopencore-amrnb0{a} libopencore-amrwb0{a} libopenr2-3{a}
  libperl5.10{a} libpq5{a} libpri1.4{a} libradiusclient-ng2{a} libresample1{a} libsdl1.2debian{a} libsdl1.2debian-alsa{a} libsndfile1{a} libsnmp-base{a}
  libsnmp15{a} libsox-fmt-alsa{a} libsox-fmt-base{a} libsox1b{a} libspandsp2{a} libspeex1{a} libspeexdsp1{a} libsqlite0{a} libss7-1{a} libsvga1{a}
  libsybdb5{a} libsysfs2{a} libtiff4{a} libtonezone2.0{a} libts-0.0-0{a} libvorbis0a{a} libvorbisenc2{a} libvorbisfile3{a} libvpb0{a} libwavpack1{a}
  libx86-1{a} mlock{a} module-assistant{a} odbcinst{a} odbcinst1debian2{a} python-asterisk sox{a} tsconf{a} unixodbc{a} vpb-driver-source{a}
0 пакетов обновлено, 67 установлено новых, 0 пакетов отмечено для удаления, и 0 пакетов не обновлено.
Необходимо получить 19,6 MB архивов. После распаковки 50,1 MB будет занято.
На...Зачем это все? ну ладно...

/etc/init.d/asterisk stop

5. Настройка fail2ban

Конфигурация fail2ban:
Создадим новый фильтр.
Код:
touch /etc/fail2ban/filter.d/asterisk.conf

Содержимое файла /etc/fail2ban/filter.d/asterisk.conf должно быть таким:
Код: 
# Fail2Ban configuration file
#
#
# $Revision: 250 $
#

[INCLUDES]

# Read common prefixes. If any customizations available -- read them from
# common.local
#before = common.conf


[Definition]

#_daemon = asterisk

# Option:  failregex
# Notes.:  regex to match the password failures messages in the logfile. The
#          host must be matched by a group named "host". The tag "" can
#          be used for standard IP/hostname matching and is only an alias for
#          (?:::f{4,6}:)?(?P\S+)
# Values:  TEXT
#

failregex = NOTICE.* .*: Registration from '.*' failed for '' - Wrong password
            NOTICE.* .*: Registration from '.*' failed for '' - No matching peer found
            NOTICE.* .*: Registration from '.*' failed for '' - Username/auth name mismatch
            NOTICE.* .*: Registration from '.*' failed for '' - Device does not match ACL
            NOTICE.* .*: Registration from '.*' failed for '' - Peer is not supposed to register
            NOTICE.* failed to authenticate as '.*'$
            NOTICE.* .*: No registration for peer '.*' \(from \)
            NOTICE.* .*: Host failed MD5 authentication for '.*' (.*)
            NOTICE.* .*: Failed to authenticate user .*@.*

# Option:  ignoreregex
# Notes.:  regex to ignore. If this regex matches, the line is ignored.
# Values:  TEXT
#
ignoreregex =

в переменную ignoreregex через запятую, можете прописать ip, которые не будут блокироваться.

Следующим шагом мы редактируем файл /etc/fail2ban/jail.conf. В самый низ данного файла помещаем новый блок:
Код: 
[asterisk-iptables]
enabled  = true
filter   = asterisk
action   = iptables-allports[name=ASTERISK, protocol=all]
         sendmail-whois[name=ASTERISK, dest=root, sender=fail2ban@example.org]
logpath  = /var/log/asterisk/full
maxretry = 5
bantime = 259200

тут у нас следующая ситуация:
fail2ban@example.org - email куда будут отправляться репорты о банах
logpath = /var/log/asterisk/full - лог, который анализируется (смотрите куда пишется у вас лог)
maxretry = 5 - число неправильных попыток авторизации
bantime = 259200 - время бана в секундах

теперь включим полное логирование нашего asterisk:
Правим файл /etc/asterisk/logger.conf.
Должно получиться примерно такое:
Код: 
[general]
dateformat=%F %T;

; Logging Configuration
;
; In this file, you configure logging to files or to
; the syslog system.
;
; For each file, specify what to log.
;
; For console logging, you set options at start of
; Asterisk with -v for verbose and -d for debug
; See 'asterisk -h' for more information.
;
; Directory for log files is configures in asterisk.conf
; option astlogdir
;
[logfiles]
;
; Format is "filename" and then "levels" of debugging to be included:
;    debug
;    notice
;    warning
;    error
;    verbose
;
; Special filename "console" represents the system console
;
;debug => debug
; The DTMF log is very handy if you have issues with IVR's
;dtmf => dtmf
;console => notice,warning,error
;console => notice,warning,error,debug
messages => notice,warning,error
full => notice,warning,error,debug,verbose

;syslog keyword : This special keyword logs to syslog facility
;
;syslog.local0 => notice,warning,error
;


ну и последний шаг, перезагрузим наши сервисы:
Код: 
/etc/init.d/fail2ban restart
 и
Код: 
service iptables restart
cp /etc/asterisk /etasterisk/asterisk.bak

Установка закончена.

пятница, 8 июня 2012 г.

Собираем свой дистрибутив Windows 7 с программами

Если приходится часто переустанавливать систему или есть парк машин с фиксированым софтом и настройками, то стоит задуматься о создании своего дистрибутива.
В моей ситуации это был офис с парком ноутбуков и определенным количеством программ и строгими настройками.

среда, 4 апреля 2012 г.

воскресенье, 12 февраля 2012 г.

Home Server. Часть 7. Установка и настройка Bittorent-клиента.


При создании использовал материалы сайтов:
  1. Собираем rTorrent из исходников 2
  2. Установка и настройка rTorrent в Debian
  3. rutorrent
  4. на всякий случай
Задача:
Без всяких иксов настроить автоматическую работу битторент клиента для раздач и скачивания :)