Окт 20 2008

DNS настройка домена

Для начала описываем доменную зону в named.conf
Домен будем рассматривать hilik.org.ua, так открываем любым редактором /etc/namedb/named.conf и вписываем в самом конце:
Читать далее »

Окт 19 2008

MySQL восстановление репликации

Бывает так, что репликация развалилась по причине того что данные уже есть в таблице.
команда
show slave status;
Указывает на ошибку Duplicate entry.
Что бы починить репликацию достаточно ввести 1 или если несколько записей дублируются, несколько раз:
SET GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;SLAVE START;SHOW SLAVE STATUS;

Окт 19 2008

MySQL — repair таблицы при нехватке места

Случилась беда. Побилась табличка, подключились, втоптали repair table «имя таблицы» и обнаружили что на починку таблицы места не хватает, почистили место, но не тут то было, места по прежнему катастрофически не хватает. Более того, сервер в продакшене и перемещать таблицу в то место где мы можем его починить времени нет.

И после этого родилась такая идея, таблицу, а именно файлы с расширениями MYD, MYI и frm, имя файлов совпадает с именем таблицы, переместил в /var/db/mysql и натравил на него myisamchk -r, myisamchk создал временный файл имя_таблицы.TMD, после этого работу mysamchk оборвал, файл переместил в то место где есть место. Что бы все пошло как надо я поставил симлинку на него и перезапустил myisamchck вот так:

myisamchk -fr имя_таблицы

При этом, по окончании работы myisamchk честно переименовал симлинку в файл имя_таблици.MYD.
Теперь мы можем вернуть все файлы на место, переименовав файл TMD в MYD и расположив его на прежнем месте в директории базы либо так и оставив там поставив из директории базы симлинку на него.

Таким образом мы сэкономили время одного копирования и максимально быстро решили проблему.

Окт 19 2008

Логирование в nginx

Перечитывая документацию к nginx нашел такие интересные переменные у модуля ngx_http_upstream:
$upstream_addr — в ней хранится ip адрес бекэнда на который nginx направит запрос
$upstream_response_time — в ней хранится время ответа бекэнда
Логирование этих переменных позволит нам оценить работоспособность бекэндов и значительно упростить поиск «тормозящей» ноды

Окт 19 2008

Exim и smarthost

Часто провайдеры закрывают отправку почты от клиентов, напрямую в интернет, предлагая воспользоваться их SMTP сервером, для отправки почты. Для того что бы воспользоваться провайдерским relayем из eximа, нужно вставить такой роутер:

smart_relay:
driver = manualroute
#Эта строка указывает, что роутер
#применяется для всех доменов, кроме локальных
domains = ! +local_domains
transport = remote_smtp
#Тут нужно указать ip адрес
#SMTP сервера провайдера
route_data = 89.252.0.132
no_more
no_verify_sender

Проверяем

exim -bt bill@microsoft.com

Получаем

bill@microsoft.com
router = smart_relay, transport = remote_smtp
host 89.252.0.132 [89.252.0.132]

Все работает замечательно.

Следует отметить, что если вы применяли роутер mailertable из статьи Маршрутизайция в эксим либо нечто подобное, то роутер smart_relay следует указать после него.

Окт 18 2008

Установка и настройка vsftpd

Сервер vsftpd, позиционируется как быстрый, простой и надежный ftp сервер.

Во FreeBSD он присутствует в портах, поэтому установка проходит без вопросов.

Для начала необходимо определиться в каком режиме будет работать vsftpd сервер. Мы будем рассматривать standalone режим.
Читать далее »

Окт 18 2008

Маршрутизация (mailertable) в exim

Понадобился мне аналог mailertable из sendmailа, но в eximе.
В exim есть механизм routers, который и определяет куда направлять письмо.
Начинается секция routers с routerа dnslookup, благодаря этому роутеру и определяется маршрутизация в соответствии с MX записи DNS, в нашей ситуации это нам не поможет.
Поэтому мы добавим свой роутер mailrtable перед роутером dnslookup. В итоге у нас получается такая конфигурация

 
begin routers
 
mailertable:
driver = manualroute
domains = ! +local_domains
transport = remote_smtp
route_data = ${lookup{$domain}dbm{/usr/local/etc/exim/mailertable.dbm}}
 
dnslookup:
driver = dnslookup
domains = ! +local_domains
transport = remote_smtp
ignore_target_hosts = 0.0.0.0 : 127.0.0.0/8
no_more
 
... далее стандартная конфигурация ...

Файл /usr/local/etc/exim/mailertable.dbm получаем так :
Берем любимый редактор и создаем файл
/usr/local/etc/exim/mailertable, такого формата

hilik.org.ua 192.168.0.1

И после этого выполняем команду

exim_dbmbuild /usr/local/etc/exim/mailertable /usr/local/etc/exim/mailertable.dbm

Проверить что у нас получилось можно командой

exim -bt hilik@hilik.org.ua

По итогу мы должны увидеть:

hilik@hilik.org.ua
router = mailertable, transport = remote_smtp
host 192.168.0.1 [192.168.0.1]

Все работает замечательно.

Окт 18 2008

Grantы в mysql

Очень часто забываю как добавить пользователя к mysql, а делается это так:
1. Надо что бы пользователь hilik c паролем hilik c localhosta только читал (выполнял команду select) на базе hilik:

 grant select on hilik.* to 'hilik'@'localhost' identified by 'hilik';

2. Надо что бы пользователь admin с паролем admin c ip:192.168.0.4 имел полное управление базой admin

  grant all on admin.* to 'admin'@'192.168.0.4' identified by 'admin';

3. Надо что бы пользователь super c паролем super c ip: 192.168.0.5 имел полный доступ ко всем базам

    grant all on * to 'super'@'192.168.0.5' identified by 'super';

Украинская Баннерная Сеть