среда, 22 декабря 2010 г.

exim - полезные сайты

Небольшая, но имхо весьма хорошая подборка


http://odminblog.ru/cheets-and-tips-exim/
Всякие полезности для exim | Одминский блог
http://odminblog.ru/exim-queue/
Работа с очередью Exim | Одминский блог
http://odminblog.ru/exim-acl-vs-spam/
Борьба со спамом в MTA EXIM с помощью ACL | Одминский блог
http://odminblog.ru/global-external-alias-using-exim/
Организация глобального внутреннего алиаса средствами exim | Одминский блог

И от меня.
Отправляем все письма в очереди, в том числе замороженные и которым еще рано
exiqgrep -i|xargs exim -M

Сколько у нас писем в очереди
exim -bpc

Переключение клиента в centos
alternatives --config mta

mysql-proxy

https://launchpad.net/mysql-proxy

MySQL Proxy is a simple program that sits between your client and MySQL server(s) that can monitor, analyze or transform their communication.

Its flexibility allows for unlimited uses; common ones include:
- load balancing
- failover
- query analysis
- query filtering and modification
and many more.

Интересная статья про будущее MySQL и его форки

http://www.blogerator.ru/page/mysql-na-steroidah

ejabberd в CentOS - грабли

Настройка довольно проста, конфиг небольшой и понятный. А вот дальнейшая отладка "почему же эта тварь не работает" занимает много времени и в связи с невменяемой и фактически отсутствующей системой логов требует изучения азов эрланга, как минимум его консоли, и знания, куда стучать.

Если включена веб-консоль на порту 5280, просто через http://server:5280 мы получим ошибку 404 Not Found
Это потому, что путь должен быть таким:
http://server:5280/admin
Но чтобы подключиться, надо знать пользователя и пароль. В теории, завести пользователя просто:
ejabberdctl register admin ...
На практике получим Failed RPC connection to the node ejabberd@jabber: nodedown
Как вариант, из жаббер-клиента подключиться и там "создать новую запись" с тем админ-логином, что указали в конфиге. И с этими данными входить в админку.
Но ошибка, указанная выше, совсем не означает, что сервер не запустился, но об этом ниже.

Итак.
Пробуем запуститься.
ejabberdctl live
Если все в порядке, последние строки будут вида
=INFO REPORT==== 10-Dec-2010::17:34:02 ===
I(<0.39.0>:ejabberd_app:72) : ejabberd 2.1.5 is started in the node ejabberd@jabber

=PROGRESS REPORT==== 10-Dec-2010::17:34:02 ===
application: ejabberd
started_at: ejabberd@jabber
Выход ^G q
Но при этом сервер остановится и надо будет его запускать просто через ejabberdctl start
Можно посмотреть список задач - ^G j
1* {shell,start,[init]}
Значит, все не так плохо.

А если Облом? Запускаемся в режиме отладки.
ejabberdctl debug
Там будет
*** ERROR: Shell process terminated! (^G to start new job) ***
Жмем ^G
Теперь ?
Получили список опций. Можно посмотреть, что запущено - j, и прицепиться к задаче - c [nn]
Только может ничего не показать. Попробуем запуститься вручную.

Также частым гостем будет ошибка
Error in process <0.34.0> on node 'ejabberdctl-1@jabber' with exit value: {badarg,[{erlang,list_to_existing_atom,["ejabberd@localhost"]},{dist_util,recv_challenge,1},{dist_util,handshake_we_started,1}]}
Обычно это говорит о том, что нода запущена, но установить соединение с ней не удалось.

Вполне может так получиться, что /etc/init.d/ejabberd start отрабатывает, но ejabberctl говорит:
# ejabberdctl status
Failed RPC connection to the node ejabberd@jabber: nodedown

=ERROR REPORT==== 10-Dec-2010::17:30:18 ===
Error in process <0.34.0> on node 'ejabberdctl-1@jabber' with exit value: {badarg,[{erlang,list_to_existing_atom,["ejabberd@localhost"]},{dist_util,recv_challenge,1},{dist_util,handshake_we_started,1}]}
При этом в памяти оно сидит:
# ps auxwww|grep jabber
avahi 1579 0.0 0.4 3740 1304 ? Ss Nov20 0:00 avahi-daemon: running [jabber.local]
ejabberd 25660 0.0 0.0 1972 252 ? S 17:16 0:00 /usr/lib/erlang/erts-5.6.5/bin/epmd -daemon
ejabberd 25727 0.1 9.6 34308 25432 ? Sl 17:17 0:01 /usr/lib/erlang/erts-5.6.5/bin/beam -K true -P 250000 -- -root /usr/lib/erlang -progname erl -- -home /var/lib/ejabberd/spool -sname ejabberd@jabber -noshell -noinput -noshell -noinput -pa /usr/lib/ejabberd/ebin -mnesia dir "/var/lib/ejabberd/spool" -s ejabberd -sasl sasl_error_logger {file,"/var/log/ejabberd/erlang.log"} -smp auto start
Ну и остановка также ничего не дает
# /etc/init.d/ejabberd stop
Shutting down ejabberd: already stopped [WARNING]

Похоже, это криво собранный пакет в центоси. Народ ставит пакет (зависимости ставятся сами), потом тянет с сайта сырцы и разворачивает в /opt. И тогда все работает.
Ну и владельца правильно менять надо, в частности на рабочие каталоги.

Дока, где описано больше чем "правим конфиг, запускаем, радуемся". Правда, тоже не полный охват проблем.
http://cms02.phys.ntu.edu.tw/tracs/env/wiki/Ejabberd

Еще дока
http://plone.lucidsolutions.co.nz/linux/im/ejabberd-centos-vm


"С ежом,одна-ко, не срослось. Что интересно, перенес с одной тачки рабочего ежа (собственной настройки) на другую - жаббера в конторе резко не стало.
Трехдневное пинание конфигов и раскуривание манов не помогло (жаббера вернул на место минут через 5, ибо уволят).
Так и не понял в каком месте при копировании кроссплатформенного приложения с кормпа на комп напоролся на грабли. Поставил opеnfire. Открыт, гпл, бесплатен, есть в портах."
http://www.gentoo.ru/node/8793

И что-то я тоже задумываюсь перейти на что-то более вменяемое.

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

SRV-записи для jabber

http://wiki.jrudevels.org/DNS_SRV
Описание SRV записей, при малейшем непонимании работы - читать до просветления.

http://nexusnotes.ru/2010/01/jabber-server-dns-setup/
пример записи, если хоститься на google hosted

http://help.yandex.ru/pdd/chat.xml
Пример для яндекса

http://www.jms1.net/jabberd2/srv.shtml
генератор SRV записей для ДНС

Это все особенно актуально, если айпи основного домена и xmpp не совпадают, поэтому например А может вести на www, а отдельный srv на xmpp.site и все должно работать.

Вкратце: создаётся 2 записи с именами _xmpp-client._tcp (порт 5222) и _xmpp-server._tcp (порт 5269) , тип SRV.

Установка mytop на FreeBSD

portinstall mytop
Все нужные модули оно дотянет само через зависимости.
Для поддержки цвета рекомендуется поставить Term::ANSIColor
Поставим. Заменяем :: на тире и ставим спереди p5-
portinstall p5-Term-ANSIColor

При необходимости делаем rehash
Теперь запускаем.. и на нормальной системе получаем "упс". Потому что надо задать базу и пароль.
ee ~/.mytop
user=root
pass=ourpass
db=
Если есть спец юзер для мониторинга (крайне рекомендуется), вбиваем туда его данные. Если нет - рута. Все значения без кавычек.
db= нужен, чтобы подключиться, иначе будет ошибка
Unknown database 'test'
Но у меня не заработало так, поэтому я запускаю так:
mytop -d ""
Так работает. Есть вариант указать реальную базу, оно похоже все-равно не фильтруется и нужно только для запуска.
Потом chmod 0700 ~/.mytop обязательно! Ибо чревато.

Недостаток: в отличие от top, после остановки mytop будет не 1 экран с последними данными, а все данные за весь период запуска. Если ведутся логи клиентом, есть шанс забить все место. А если не ведутся - что-то потерять из видеобуфера, у меня он например 2000 строк всего.

среда, 15 декабря 2010 г.

Trunking

Решил привести в порядок знания по этому термину.

Trunking - объединение в пучок.
http://www.sagatelecom.ru/encyclopedia/systems/detail.php?ID=75

Соединительная линия, транк — комплекс технических средств,...
http://ru.wikipedia.org/wiki/Соединительная_линия
Транк - это способ повысить пропускную способность конкретного соединение (например, между двумя свичами), проложив два (или больше) проводов между этими устройствами (и, естественно, воткнув их в устройства).

Впрочем, http://ru.wikipedia.org/wiki/Транк даёт аж 3 значения:
Транк:
Канал связи
Соединительная линия
Хобот слона

Еще в телефонии:
под термином "транкинг" понимается метод доступа абонентов к общему выделенному пучку каналов, при котором свободный канал выделяется абоненту на время сеанса связи.

таким образом, sip-транк это как бы пучок каналов в одном установленном.

И еще немного о транке в телефонии
http://www.viol.uz/systems/trank/page1.shtml

Отладка плагинов ISPManager

Заметил, что панель при попытке удаления домена стала ругаться
malformed result

Запустим плагин руками
> perl /usr/local/ispmgr/addon/wwwdomainsd
Can't locate XML/LibXML.pm in @INC (@INC contains: /usr/local/lib/perl5/5.10.1/BSDPAN /usr/local/lib/perl5/site_perl/5.10.1/mach /usr/local/lib/perl5/site_perl/5.10.1 /usr/local/lib/perl5/5.10.1/mach /usr/local/lib/perl5/5.10.1 . /usr/local/ispmgr/lib/perl) at /usr/local/ispmgr/addon/wwwdomainsd line 11.
BEGIN failed--compilation aborted at /usr/local/ispmgr/addon/wwwdomainsd line 11.

В данном случае не хватало p5-XML-LibXML (freebsd)
И таким образом отлаживаем модуль, пока не заработает.

понедельник, 13 декабря 2010 г.

в дебияне нет группы wheel

Такое впечатление, что дебиановцев чем-то сильно обидели и они решили сделать свой линукс "с блэкджеком и шлюхами". То OpenSSL им чем-то не нравится, то eaccelerator, и даже стандартный host работает некорректно! (пруф).. Теперь вот оказалось, что там нет группы wheel, которая есть во всех классических линуксах, а также *BSD. Интересно, какой глубокий смысл они пытались этим донести?...

UP для sudo у них отдельная группа sudo

воскресенье, 12 декабря 2010 г.

ERROR: version of config(8) does not match kernel!

Попытался сделать make buildkernel, получил

ERROR: version of config(8) does not match kernel!
config version = 600007, version required = 600009

Make sure that /usr/src/usr.sbin/config is in sync
with your /usr/src/sys and install a new config binary
before trying this again.

If running the new config fails check your config
file against the GENERIC or LINT config files for
changes in config syntax, or option/device naming
conventions

*** Error code 1

Stop in /usr/src.
*** Error code 1

Решение: надо сначала сделать make buildworld
После этого ядро строится нормально.

пятница, 10 декабря 2010 г.

ejabberd во freebsd

Можно ставить так:
cd /usr/ports/lang/erlang-lite
make install clean
http://wiki.firstvds.ru/index.php/%D0%A3%D1%81%D1%82%D0%B0%D0%BD%D0%BE%D0%B2%D0%BA%D0%B0_ejabberd

Можно так:
В /etc/make.conf прописываем
WITHOUT_JAVA=yes
WITHOUT_ODBC=yes
cd /usr/ports/net-im/ejabberd/ && make install clean
http://kvk.pp.ru/doc/ejabberd.shtml

Не забываем, что оно весьма своевольно и жрет далеко не все версии ерланга.

полезные ссылки по ISPManager

ru.ispdoc.com/index.php/ISPmanager:Проблемы_и_решения
ru.ispdoc.com/index.php/Категория:Технические_статьи_по_ISPmanager
ru.ispdoc.com/index.php/Категория:Документация_для_ISPmanager

Для FreeBSD надо немного подправить GENERIC ядро
options QUOTA
options IPFIREWALL
options IPFIREWALL_DEFAULT_TO_ACCEPT

ru.ispdoc.com/index.php/Конфигурация_ядра_FreeBSD_для_использования_с_ISPmanager

Запуск новой вирт машины в PV-mode

Есть 2 пути:
1) тянем спец ядро в хост-машину и подключаем
2) ставим в hvm, можно из простого .iso, потом конвертим в PV

Не совсем вариант: оставив в HVM, поставить PV-драйвера.

четверг, 9 декабря 2010 г.

Louwrentius: RAID 5 vs. RAID 6 or do you care about your data?

Louwrentius: RAID 5 vs. RAID 6 or do you care about your data?
"RAID-5 тоже не слишком надежен"

Louwrentius: Linux network interface bonding / trunking or how to get beyond 1 Gb/s

Louwrentius: Linux network interface bonding / trunking or how to get beyond 1 Gb/s

named+ISPManager

Запустил новый сервер (на freebsd), подключил штатный bind - system-named. В "доменные имена" появилась куча записей вида
0.0.0.0.0.0.0.0.8.b.d.0.1.0.0.2.ip6.arpa
0.f.ip6.arpa
0.in-addr.arpa
0.ip6.arpa
1.e.f.ip6.arpa
1.f.ip6.arpa
1.ip6.arpa
....

В принципе, это empty-зоны и их можно удалить на хостинге. Но правильнее или вынести их все из конфига в named.defzones, или ISP настроить на запись зон в named.zones, не трогая зоны из главного файла. Второй вариант попробую пропихнуть авторам (попутно снимаем кучу проблем вроде обновления системы, когда mergemaster хочет заменить конфиг на дефолтный и если все-таки заменить, 1 инклуд + правка listen и по мелочи - и работаем дальше)

http://forum.firstvds.ru/viewtopic.php?p=35534&sid=8c6b0dd6b411c13dc19b8e98f11c01b1
тут еще чуть-чуть.

почему смена ns-записей на .ru домене занимает несколько дней

# dig ru SOA

;; ANSWER SECTION:
ru. 345600 IN SOA ns.ripn.net. hostmaster.ripn.net. 4017122 86400 14400 2592000 3600
; Serial, Refresh, Retry, Expire, Neg. cache TTL

TTL SOA записи 345600 секунд - 96 часов - 4 дня. А там серийник..
С другой стороны, Refresh сутки, а Neg. cache TTL вообще 1 час.

Как оно точно считаться будет, пока вопрос.

Louwrentius: Do not buy a hardware RAID controller for home use

Louwrentius: Do not buy a hardware RAID controller for home use
"Почему не стоит использовать аппаратный рейд дома".
Вкратце: иначе диск на первом же бэде выкинет как отпавший.

Но я бы немного переформулировал: "Почему не надо ставить бытовые диски с аппаратными рейдами". Или подбирать типа WD RE, у которых время на попытки чтения ограничено.

Louwrentius: Linux: using disk labels to counter storage device name changes

Louwrentius: Linux: using disk labels to counter storage device name changes

воскресенье, 5 декабря 2010 г.

Память DDR4: время ли разбрасывать камни? | Процессоры и память - 3DNews - Daily Digital Digest

Память DDR4: время ли разбрасывать камни? | Процессоры и память - 3DNews - Daily Digital Digest

mv: Почему нельзя переместить каталог, если такой уже есть

Попытаемся переместить /src в /dst/src, при том, что такая уже есть:
mv /src /dst/
mv: rename /src to /dst: Directory not empty

В мане сказано, почему:
As the rename(2) call does not work across file systems, mv uses cp(1)
and rm(1) to accomplish the move. The effect is equivalent to:

rm -f destination_path && \
cp -pRP source_file destination && \
rm -rf source_file

Таким образом, если бы команда отработала, сначала очистило бы содержимое старой папки, а это несколько не то, что нам нужно.
Риторический вопрос, что мешает убрать первый rm, чтобы получилось копирование с заменой...
Как вариант решения:
rsync -aS /src /dst/
rm -rf /src
Не забываем, что у rsync закрывающий слэш имеет значение.

суббота, 4 декабря 2010 г.

ASUS AT3IONT-I - основа медиацентра на базе Atom + ION | Материнские платы - 3DNews - Daily Digital Digest

ASUS AT3IONT-I - основа медиацентра на базе Atom + ION | Материнские платы - 3DNews - Daily Digital Digest
Очень интересная штука, и на порядок интереснее аналогов.
По начинке - аналог acer revo (на 330 который)

Уточнение.
На рус. сайте такой просто нет. На англ есть, 2 версии, простая и deluxe.
Простая - только с ATX-питанием, без wifi модуля.
Deluxe - только с внешним БП, без ATX, с wifi, и с пультом управления + внешним ик-портом.
http://www.asus.com/Search.aspx?SearchKey=AT3IONT-I

Разница в цене где-то 1.5к

пятница, 3 декабря 2010 г.

Что грузит диск?

В CentOS:

Есть в линуксе неплохая утилита iotop, попробуем поставить..

#yum install --enablerepo=epel-testing iotop

#iotop
iotop requires kernel-2.6.18-199.el5 or later, but kernel-2.6.18-194.17.1.el5xen is running

Облом-с.

Есть еще atop.

#yum install -y atop
#atop -d

Ещё вариант
http://www.opennet.ru/tips/info/2487.shtml
http://www.opennet.ru/openforum/vsluhforumID3/72792.html
(SystemTap)

четверг, 2 декабря 2010 г.

Цинизм в IT: Как правильно переносить сайты с хостинга на хости...

Цинизм в IT: Как правильно переносить сайты с хостинга на хости...: "1. Экспортируете базу данных на старом хостинге 2. Импортируете базу данных на новом хостинге 3. Блокиурете соединения с удаленными MySQL: i..."

Цинизм в IT: Диагностика проблем с почтой на сервере / VPS

Цинизм в IT: Диагностика проблем с почтой на сервере / VPS: "Добрый вечер! Сегодня решил написать об одной из самых частых и часто сложных проблем при работе с выделенными серверами / VPS - это проблемы с почтой, причем как входящей, так и исходящей. Итак, поехали."

Цинизм в IT: Как корректно настроить spf для Gmail?

Цинизм в IT: Как корректно настроить spf для Gmail?

SPF

Цинизм в IT: ISPManager, spf и защита от СПАМа

От себя добавлю, что "мягкий отказ" часто не рекомендуется, так как нивелирует вообще смысл spf. Имеет смысл ставить -all.

Ещё немного:
http://www.redline-software.com/rus/support/articles/msexchange/2003/an_overview_of_the_sender_policy_framework.php

Большая и полезная дока:
http://www.zytrax.com/books/dns/ch9/spf.html

Об ошибках:
http://www.openspf.org/FAQ/Common_mistakes