понедельник, 20 апреля 2015 г.

как получить цифру load average, несколько методов

Пожалуй, самый простой
cat /proc/loadavg |awk '{print $1}'

оно же
cat /proc/loadavg |cut -d ' ' -f 1

Вариант более универсальный, не только для линукса
uptime | sed -e 's#^\(.*\) averages\{0,1\}: \(.*\), \(.*\), \(.*\)$#\2#'

Можно ещё парсить w, но там взять первую строку и дальше суть та же.
Некоторые придумывают мегаконструкции типа
uptime |awk -F 'load average:' ' {print \$2}'| awk -F '[ ]'  ' {print \$2}' | awk '{gsub(",", "");print \$1}'
но это разве что полезно для "а я вот так ещё умею" и прочего писькомерства. И всё-равно данная строка линь-онли.

пятница, 3 апреля 2015 г.

Учимся писать .spec файлы

Можно много лет использовать систему, используя только уже готовые rpm файлы, но однажды приходится ставить и распространять что-то своё, не забивая при этом все сервера компиляторами и служебными утилитами. И возникает необходимость собрать свои пакеты. А потом - поднять локальный репозиторий.

А пока позаботимся о первой части. При возможности для сборки нужен отдельный сервер и отдельный юзер, чтобы не забивать рабочие машины (сервера), на нём же безопасно тестировать установку и удаление этих пакетов, помним баги с лишним пробелом в rm -rf / usr.

среда, 25 марта 2015 г.

Отправка почты с вложениями из консоли

Простой вариант
cat file.txt | mail -s "text file" your@domain.com
отправит файл "как есть", в теле письма. Но так не получится отправить картинки или несколько файлов.

понедельник, 23 марта 2015 г.

Ставим OpenSSL 0.9.8 на debian wheezy

Некоторые приложения хотят устаревшую ветку openssl - 0.9.8, например
 libcouchbase2-core : Depends: libssl0.9.8 (>= 0.9.8k-1) but it is not installable

Фикс: ставим бэкпорт под squeeze:

Под 64 бита
$ wget http://ftp.us.debian.org/debian/pool/main/o/openssl/libssl0.9.8_0.9.8o-4squeeze14_amd64.deb
$ sudo dpkg -i libssl0.9.8_0.9.8o-4squeeze14_amd64.deb

пятница, 13 марта 2015 г.

Где взять portaputty

Есть полезный и известный набор утилит для работы через ssh, tty, telnet под винду. Лежит тут:
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
последняя версия 0.64

 К большому сожалению, она пишет в реестр, поэтому её невозможно использовать с нескольких машин, а потеря реестра означает потерю всех настроек. Есть 3 варианта избавиться от этой гадости:
1) putty portable на portableapps.com - версия свежая, но для работы нужна обёртка. Неизвестна стабильность при работе в связке с pytty connection manager и аналогами.
2) portaputty. Сами исходники "отучены" лезть куда не нужно, все настройки на диске, переносимость хорошая, работает с менеджерами. Долгое время обитало на http://code.google.com/p/portaputty/, но сейчас удалено или закрыто. Есть клон/копия на https://github.com/potatosalad/portaputty, но исходники 8-летней давности, версия 0.60.
3) KiTTY, http://www.9bis.net/kitty/?zone=ru
KiTTY — это модифицированная версия программы PuTTY версии 0.64
По умолчанию так же гадит в реестр, но есть возможность изменить поведение: http://www.9bis.net/kitty/?page=Portability&zone=ru
Увы, полноценного менеджера сессий в комплекте так и нет.

понедельник, 2 марта 2015 г.

screen: Cannot open your terminal '/dev/pts/0' - please check

Или не хватает прав для подключения к скрину (например рутовому не от рута), или, если это openvz enter ... - просто нет такого терминала, особенность работы с ovz enter. Фикс:
script /dev/null
screen ...

Если же проблема с работой с Multiuser - то не забываем делать acladd пользователям.

линки

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

sip: μ-law или A-law?


Оба вида *law кодеков - это 2 алгоритма для G.711
Общие характеристики:
8-ми битная компрессия PCM голоса
частота дискретизации 8000 кадров/секунду и 8 bit/кадр.
поток 64 kbit
патент на кодек давно истёк, поэтому нет никаких сборов и ограничений.

Слабое сжатие даёт (относительно) большую нагрузку на канал, но очень мало на процессор, что хорошо для слабых встраиваемых систем, не требуется DSP.

μ-law, он же ulaw, PCMU, в sdp номер 0, стандарт для америки.
В сравнении с alaw ulaw даёт несколько больший динамический диапазон сигнала, но чуть большие искажения для слабых сигналов (1)

a-law, он же alaw, PCMA, в sdp номер 8, полее поздний, изначально предназначен для компьютерной обработки процессов (2), стандарт для европы.

Поскольку РФ - европа, предпочтение стоит отдать кодеку alaw.

(1) http://xgu.ru/wiki/ulaw

(2) https://ru.wikipedia.org/wiki/G.711
http://www.ti.com/lit/an/spra267/spra267.pdf
http://www.voip-sip.org/g-711-u-law-or-a-law/

вторник, 13 января 2015 г.

CentOS: Скачать (s)rpm пакеты

Бывает так, что нужно скачать ряд пакетов, для оффлайн обновления, при узком/дорогом канале и нескольких серверах, итд.
Можно качать через wget, но у многих закрыт листинг каталогов, то есть нужно сделать yum search..., получить полное имя и уже ему wget, но быстрее и проще для этой цели использовать саму систему yum, попутно получить разрешение зависимостей.

понедельник, 12 января 2015 г.

database и schema в postgres и mysql (с хабра)

http://habrahabr.ru/post/246339/#comment_8190995
Хинт: в mysql - database == schema, в postgres schema==namespace ~ mysql database, тогда как postgres database - некий глобальный контейнер для схем.
Примерно так же у oracle и без канистры водки порой сложно разобраться, что где и как.

среда, 31 декабря 2014 г.

openvz + iptables nat

# uname -a
Linux r31.ru 2.6.32-042stab102.9 #1 SMP Fri Dec 19 20:34:40 MSK 2014 x86_64 x86_64 x86_64 GNU/Linux

При попытке сделать iptables -t nat -L получаем
iptables v1.4.7: can't initialize iptables table `nat': Table does not exist (do you need to insmod?)
Perhaps iptables or your kernel needs to be upgraded.

iptable_nat, nf_nat загружены.

вторник, 30 декабря 2014 г.

php 5.2 в конце 2014 года

До сих пор есть сайты, которые работают только под php 5.2, не выше. Почему не поправить их? Например, позиция владельца "я не буду платить, оно же работает!", а своих денег на программиста нет. Особенно если таких сайтов даже больше 10, а если счет идет на сотни и тысячи?
Или когда есть что-то кодированное (cms), тем же zend, и версия cms больше не на поддержке/той фирмы больше нет. Нужно переделывать сайт с нуля.
Надо ставить что требуется, и пусть официально оно уже не поддерживается...
Хотя и разработчики php тоже поступили по свински, серьёзно изменили некоторые вещи, сломав совместимость, но не стали делать 5.2-LTS версию. Лучи поноса в их сторону.

Отдельно хорошо было бы рассмотреть связку этих версий с ispmaanager, но пока нет возможности. В этом плане лучше всего работает система, где php только 1 версии.

четверг, 25 декабря 2014 г.

FreeSWITCH: BLA, BLF, SLA

BLA stands for Bridged Line Appearance. It allows a user to receive and make calls on the line appearance of another user that appears on their phone. It also shows whether that user is on the phone or not.

SLA - Shared Line Appearance
Shared Line Appearances: SLAs allow you to place a call on hold at one set and pick it up easily at another set. SLA is also known as SCA: Shared Call Appearance. You can join an existing conversation be pressing the corresponding line button. Typically the phones will have dedicated buttons with LEDs for each of the shared lines.

BLF (busy lamp field)
BLF stands for Busy Lamp Field. It will show you if the user is on the phone or not, and allows you to use that button as a speed dial to call that user. You can not make a call on that user's line from your phone.

http://www.voip-info.org/wiki/view/Asterisk+SLA
http://lists.sip-router.org/pipermail/users/2008-August/019369.html

вторник, 16 декабря 2014 г.

CentOS 7 + otrs 4

Сразу скажу, запустить на 7 тоже можно, но граблей там море. Например, фирменный пакет, файл /etc/sysconfig/otrs - проверки старыми методами. Об этом будет ниже.

Читаем, качаем
http://otrs.github.io/doc/manual/admin/stable/en/html/installation.html#installation-on-centos
https://www.otrs.com/homepage/try/

CentOS 7 и новый firewall

https://access.redhat.com/documentation/en-US/Red_Hat_Enterprise_Linux/7/html/Security_Guide/sec-Using_Firewalls.html#sec-Introduction_to_firewalld

По сути, это тот же iptables, но несколько в другом виде, в чём-то более логичном.
Из основных фич - релоад не рвёт соединения, хотя при аккуратной работе с iptables этого тоже можно было избежать. Но софт типа shorewall ТАК не умел, что в организациях на 200+ машин работало уныло. Теперь недоадминам, внедряющим такие поделки в большие сети, будет проще.

Пример разрешения http
firewall-cmd --zone=public --add-service=http --permanent
firewall-cmd --reload