Смена порта с 25 на 2525 Postfix

February 11th, 2010
Добавьте в файл /etc/postfix/master.cf
следующую запись:
smtp_new inet    n       -       -       -       -       smtpd
А так же в файл /etc/services:
smtp_new 2525/tcp

и перезапустить Postfix

Exim + передёрнуть очередь

January 25th, 2010

/usr/local/exim-smtp/exim -bp | grep @ | grep \< | awk ‘{print $4}’ | sort | uniq -c | sort -n |tail -15

Вывести TOP 15 email адресов с которых производится рассылка писем

/usr/local/exim-smtp/exim -bp | grep email | awk ‘{print $3}’ | xargs -n1 /usr/local/exim-smtp/exim -Mrm

Удалить письма с определенного email адреса.

Iptables + заблокировать IP адрес

January 25th, 2010

iptables -A INPUT -s ip -j DROP – добавить правило

iptables -D INPUT -s ip -j DROP – удалить правило

Работа с SNMP

January 13th, 2010

Порой требуется получить результат текущего состояния сервера через SNMP, сделать это можно так:

snmpwalk -v 1 -c GROUP HOST UCD-SNMP-MIB::dskPercent.1  – показать занятость диска в %, диск должен быть определен в snmpd.conf  директивой disk /var – например

1С-Битрикс + $_SERVER['DOCUMENT_ROOT']

January 13th, 2010

Столкнулся с проблемой, у клиента был установлен не корректно $_SERVER['DOCUMENT_ROOT'] из-за чего все вызовы

require($_SERVER['DOCUMENT_ROOT'].”/bitrix/header.php”);  на подобие таких не отрабатывались, решением было вставка в начало каждого файла где фигурирует require следующей конструкции:

grep -r require . | awk ‘{print $1}’ | cut -d ‘:’ -f 1 | uniq | xargs -n1 perl -i -ne ‘if( $. == 1 ) { print “<? require(\”path_to/reg.php\”); ?>”,$_; } else { print; } ‘ -i ”

а в reg.php пропишем:

<?

$_SERVER['DOCUMENT_ROOT'] = ‘correct_path_to_bitrix’;

?>

No space left on device: Couldn’t create accept lock or Cannot create SSLMutex

January 6th, 2010

[Tue Mar 04 09:22:48 2008] [error] (28)No space left on device: Cannot create SSMutex
Configuration Failed
ipcs -s | grep apache | perl -e ‘while (<STDIN>) { @a=split(/\s+/); print `ipcrm sem $a[1]`}’

Как собрать PHP в режиме CGI

January 6th, 2010
Производите подключение по SSH. Выполняете следующие команды:

1) wget http://ru2.php.net/get/php-5.2.11.tar.bz2/from/ru.php.net/mirror

2) tar -xjvf php-5.2.11.tar.bz2

3) cd php-5.2.11

./configure –prefix=/storage/home/srvXXX/php \

–with-mysql=/usr/local \

–with-gd=/usr/local \

–enable-fastcgi

4) make

6) cp /storage/home/srvXXX/php/bin/php-cgi /storage/home/srvXXX/cgi-bin/php

7) chmod 755 /storage/home/srvXXX/cgi-bin/php

8) скопировать из /storage/home/srvXXX/php/etc/ – дистрибутивный php.ini файл и разместить в директорию /storage/home/srvXXX/cgi-bin/php.ini

в файл .htaccess добавляете следующие директивы:

Action php-script /cgi-bin/php

AddHandler php-script .php

Системы мониторинга

December 28th, 2009

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

Есть 2 типа систем мониторинга:

1) Работают по протоколу SNMP, при этом есть системы требующие установки дополнительных клиентов на каждом сервере (Zabbix), либо использующие только возможности SNMPD(Nagios).

2) Самописные системы, забирающие данные по FTP.

1 тип систем подходит для быстрого развёртывания и достоверного получения информации в пределах 5 минут, именно о них будут последующие записи.

MySQL + Maatkit

November 3rd, 2009

Надоело мне смотреть на безобразие на БД серверах, установил пакет maatkit, что умеет:

perl /usr/local/bin/mk-query-digest --filter '($event->{user} || "") =~ m/USER/'
 /var/log/mysql-slow.log | less - вытащить запросы по пользователю.

perl /usr/local/bin/mk-query-digest --filter '($event->{db} || "") =~ m/DB_NAME/'
 /var/log/mysql-slow.log | less - вытащит запросы по БД.
В конце выводится таблица самых часто выполняемых и тяжеловестных запросов.

perl /usr/local/bin/mk-query-digest --filter '$event->{Lock_time}>0'
/var/log/mysql-slow.log | less - вывести таблицы которые чаще всего локаются.

perl /usr/local/bin/mk-query-digest --filter '($event->{Tmp_table} || "") eq "Yes"'
 /var/log/mysql-slow.log | less - кто использует Tmp_table

perl /usr/local/bin/mk-query-digest --filter '(($event->{Disk_tmp_table} || "") eq "Yes") ||
(($event->{Tmp_table} || "") eq "Yes")' /var/log/mysql-slow.log | less
perl /usr/local/bin/mk-query-digest --filter '$event->{Rows_examined}>500000'
/var/log/mysql-slow.log | less - по Rows_examined сортируем
perl /usr/local/bin/mk-query-digest --group-by db /var/log/mysql-slow.log

Работа с DNS

October 30th, 2009

Часто возникает вопрос, как просмотреть дату истечения домена, а так же я продлил домен, почему он не работает?

1) Используем любой whois сервис, например:

https://www.nic.ru/whois/?query=sdh-info.ru

и смотрим поле paid-till:  2010.10.25

2) При продлении домена срок обновления DNS адресов занимает до 6 часов, без учёта кэширования информации о DNS зонах внутри провайдеров.