Янв
04
2010
0

Настройка дополнительного домена для недоставленной почты

Проблема: Основной почтовый домен хостится на google app.  Автоматические отчеты отсылаются напрямую в googleapp .  Если gmail начал отклонять письма (не касается платных аккаунтов) на ваши служебные адреса (hostmaster, postmaster, root) — вы перестаните получать уведомления об ошибках, нотификации, ежедневные отчеты и тп.  Приведенная конфигурация касается только конфигураци для почтовых серверов расчитаных в основном  для отправки почты  (lamp).  Для возможности архивирования и пересылки используем дополнительный relay.

Решение:

1.  Создаем вспомогательный домен c собвственным MX, SPF (к примеру:  bounces.domain.ua, colo.domain.ua).

2.  На серверах прописываем транспорт и направляем все ошибки (про доставленную почту и тп) через наш домен bounces.domain.ua.

/etc/postfix/main.cf

# Отчеты о недоставленой почте отправляем постмастеру
notify_classes = bounce,resource,software
double_bounce_sender = postmaster
bounce_notice_recipient = postmaster@bounces.domain.ua
#
# Всю почту from:<> отправляем через наш relay
empty_address_relayhost_maps_lookup_key = MAILER-DAEMON
sender_dependent_relayhost_maps = hash:/etc/postfix/sender_relay

/etc/postfix/sender_relay

MAILER-DAEMON   bounces.domain.ua

3. В /etc/aliases перенаправляем всю почту для root на root@colo.domain.ua.

4. В моем случае,  необходимо было всю  почту к @bounces.domain.ua перенаправлять к одному адресату, а на ящики root@colo.domain.ua и cron@colo.domain.ua к другим.  Остальное > /dev/null.  Вот конфигурация вспомогательного почтового сервера:

# ---- Virtual domains for reposts ----
...........................[SKIPED].........................
virtual_alias_domains =  colo.domain.ua bounces.domain.ua
virtual_alias_maps = hash:/etc/postfix/virtual

# ---- Rewrite address ----
sender_canonical_maps = regexp:/etc/postfix/sender_canonical
recipient_canonical_maps = hash:/etc/postfix/recipient_canonical

# ---- Redefine default transport ----
default_transport = local

# ---- Relay all local transport to one email ----
local_recipient_maps =
luser_relay = null

# ---- Define normal smtp transport for some domain ----
transport_maps = hash:/etc/postfix/transport
# ---- Access only my network ----
smtpd_client_restrictions = permit_mynetworks, reject

/etc/postfix/virtual

@bounces.domain.ua			xxxx1@other-domain.com.ua
root@colo.domain.ua			xxxx2@other-domain.com.ua
cron@colo.domain.ua			xxxx3@other-domain.com.ua

/etc/postfix/sender_canonical

/^(.*)@(.*)$/		${1}@dsn.domain.ua

/etc/postfix/transport

@gmail.com				smtp:gmail.com
other-domain.com.ua			smtp:other-domain.com.ua
Опубликовал adik в Технотрония | Метки:
Дек
18
2009
--

Опубликовал adik в Технотрония |
Ноя
17
2009
0

Как добавить patch в собираемый deb пакет [Debian Maintainers]

При сборке пакетов, крайне не рекомендуется изменять исходный код. Если нам все-таки необходимо это сделать — пользуемся менеджерами патчей dpatch или quilt.

Using DPatch

1. Устанавливаем dpatch

apt-get install dpatch

2. В список зависимостей Build-Depends, который находится в debian/control, добавляем dpatch
3. Создаем папку:

mkdir debian/patches

4. С помощью команды dpatch-edit-patch создаем наш патч. Утилита откроет консоль с копией исходников. Все сделаные изменения будут собраны в diff.

dpatch-edit-patch 01_our_new_patch

5. Файл debian/patches/00list указывает порядок исполнения. Добавляем название нашего патча в список :

echo 01_our_new_patch >> debian/patches/00list

6. В файл сборки debian/rules добавляем:

include /usr/share/dpatch/dpatch.make
...
build: build-stamp
build-stamp: patch-stamp
    ...
    build stuff here
    ...
clean: unpatch
    ...
    clean stuff here
    ...
...

original link: HowTo use dpatch

Опубликовал adik в Технотрония | Метки: ,
Ноя
16
2009
0

Linux initrd boot scheme (initramfs-tools)

After initrd image unpack and mount to / (rootfs, tmpfs):

mount /sys and /proc
init-top hook
init-premount hook
    local-top hook
    local-premount hook
    mount realroot to /root
    local-bottom hook
init-bottom hook
move mount /sys to /root/sys
move mount /proc to /root/proc
exec run-init(klibc)
    delete rootfs contents
    overmount from /root to /
    chroot and chdir("/")
    exec /sbin/init
Опубликовал adik в Технотрония | Метки:
июля
30
2009
0

Storing your PHP sessions using memcached

apt-get install memcached
apt-get install php5-memcache

Be sure that /etc/php5/apache2/conf.d/memcache.ini contains this line :

extension=memcache.so

replace

session.save_handler = files
; session.save_path = "N;/path"

with

session.save_handler = memcache
; change server:port to fit your needs...
session.save_path=”tcp://127.0.0.1:11211?persistent=1&weight=1&timeout=1&retry_interval=15
Опубликовал adik в Технотрония |
июля
25
2009
0

Generate password [bash]

Add to ~/.bashrc

genpasswd() {
	local l=$1
       	[ "$l" == "" ] && l=20
      	tr -dc A-Za-z0-9_ < /dev/urandom | head -c ${l} | xargs
}

usage:

genpasswd 16

or use

# http://www.adel.nursat.kz/apg/download.shtml
apg

(далее...)

Опубликовал adik в Технотрония | Метки:
июля
20
2009
0

RPM excluded man pages

При установке rpm, если не хотите устанавливать документацию — создаем файл:

/etc/rpm/macros.nodoc

# Файлы описаные с помощью %doc в спеке:
%_excludedocs 1
 
# Отключаются файлы, прописанные в спеке как %lang(<locale>) <file> :
%_install_langs C:en:uk
 
# Path to selinux file context patterns:
%__file_context_path %{nil}

(далее...)

Опубликовал adik в Технотрония | Метки: , ,
июля
01
2009
0

uppercase in sh | shell programming

Convert variable data from lowercase to upper

echo $VAR | tr '[:upper:]' '[:lower:]'
echo $VAR | tr '[:lower:]' '[:upper:]'
Опубликовал adik в Технотрония | Метки: , ,
июня
30
2009
0
мая
12
2009
0

IP spoofing attack?!

Problem:

/!\ FAILSAFE /!\  Tue May 12 15:15:53 +0300 2009
Status: 500 Internal Server Error
IP spoofing attack?!
HTTP_CLIENT_IP="10.1.200.218"
HTTP_X_FORWARDED_FOR="217.117.64.2, 217.117.64.2"

Decision:

( Rails 2.3 )
ActionController::Base.ip_spoofing_check = false
Ruby on Rails 2.3 Release Notes

( Path )
forwarded_client_ip_with_test.patch

( READ )
https://rails.lighthouseapp.com/projects/8994/tickets/322

( READ )
http://github.com/rails/rails/commit/0a4a5f3129a137fc357e8444a08b135f0ad4fbe8

Опубликовал adik в Технотрония | Метки:
мая
11
2009
0
мая
01
2009
0

Sphinx Search — ubuntu — package

sudo apt-get install bzr-builddeb
sudo bzr-buildpackage  lp:pkg-sphinx
sudo dpkg -i ../sphinxsearch_0.9.8-1_amd64.deb

https://code.launchpad.net/~pkg-sphinx/pkg-sphinx/trunk

Опубликовал adik в Технотрония |
Апр
15
2009
0

Шрифты and Ubuntu and Firefox and Tahoma

mkdir ~/.fonts
wget http://www.stchman.com/tools/MS_fonts/tahoma.zip
unzip -d ~/.fonts tahoma.zip
rm tahoma.zip

Открываем «System -> Параметры -> внешний вид -> шрифты», везде выбираем "Tahoma , размер 8 + ставим галочку против «Монохромная отрисовка».

(далее...)

Опубликовал adik в Технотрония | Метки: , ,
Апр
13
2009
0

[ubuntu] netbeans line height

short solution:
1. Install sun-java6-jdk (not open-jdk)
2. /usr/bin/netbeans --jdkhome /usr/lib/jvm/java-6-sun

links:
Editor text wasting vertical space
#Bug 146555 — Setting for «Line Height Correction»
How to change line height in NetBeans’ editor

Опубликовал adik в Технотрония | Метки:
марта
24
2009
0

xen ubuntu console-kit-daemon

При установке Ubuntu под Xen часто возникает ошибка:

Mar 24 15:55:13 db console-kit-daemon[13251]: WARNING: Error waiting for native console 58 activation: Invalid argument
Mar 24 15:55:13 db console-kit-daemon[13251]: WARNING: Error waiting for native console 8 activation: Invalid argument
Mar 24 15:55:13 db console-kit-daemon[13251]: WARNING: Error waiting for native console 43 activation: Invalid argument
Mar 24 15:55:13 db console-kit-daemon[13251]: WARNING: Error waiting for native console 47 activation: Invalid argument
Mar 24 15:55:13 db console-kit-daemon[13251]: WARNING: Error waiting for native console 45 activation: Invalid argument
Mar 24 15:55:13 db console-kit-daemon[13251]: WARNING: Error waiting for native console 12 activation: Invalid argument

лечится это так:

rm /etc/dbus-1/system.d/ConsoleKit.conf
rm /usr/share/dbus-1/system-services/org.freedesktop.ConsoleKit.service
invoke-rc.d dbus restart

Незнаю, правильно это или нет, но, демон уже не запускается при старте :-)

Опубликовал adik в Технотрония | Метки: ,
марта
20
2009
0

ubuntu [hardy/intrepid] bug #238755 'Account has expired' message when adding a new user, after «passwd -l root»

'Account has expired' message when adding a new user, after «passwd -l root»

This seems to be related to the use of «passwd -l root».
Until the Debian fix shows up in hardy, here is a workaround, thanks to Nicolas François:

 sudo passwd --unlock root
 sudo usermod --lock root
Опубликовал adik в Технотрония |
марта
19
2009
1

[ubuntu] wine и microsoft visio 2003

1. Устанивливаем последний wine (Wine for Ubuntu and Ubuntu derivatives)

sudo wget -q http://wine.budgetdedicated.com/apt/387EE263.gpg -O- | sudo apt-key add -
sudo wget http://wine.budgetdedicated.com/apt/sources.list.d/intrepid.list -O /etc/apt/sources.list.d/winehq.list
sudo apt-get update
sudo apt-get install wine

2.

wget http://www.kegel.com/wine/winetricks
sh winetricks corefonts vcrun6
sh winetricks wsh56
sh winetricks gecko msxml3 riched20 riched30 gdiplus

(далее...)

Опубликовал adik в Технотрония | Метки: , ,
марта
05
2009
0

Copy files partition2partition

Mount point method:

cd <mount-point-source>
find . -xdev | cpio -pm <mount-point-dest>

Block device method:

if ( size[device2] >= size[device1] )

dd if=/block/device1 of=/block/device2 bs=4k

Remote copy over ssh:

ssh remote-host.com dd if=/block/source bs=4k | dd of=/block/destination bs=4k
Опубликовал adik в Технотрония | Метки:
Фев
08
2009
0

Dell/PERC RAID Manage in Debian

Иногда перед счасливыми обладателями серверов DELL стоит необходимость администрирования/мониторинга RAID контроллера без использования всякого рода GUI.

Для PERC 5 и PERC 6 котроллеров под управлением драйвера megaraid_sas используется утилита MegaCli

Для контроллеров SAS 5 и SAS 6 под управлением драйвера mptsas:

Опубликовал adik в Технотрония | Метки: , , ,
Янв
26
2009
1

Marshal.load = undefined class/module

Иногда в development при cache_classes = false

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
module Marshal 
  class <<self
    def load_with_preload_class(str, &p)
      str.scan(/.o:.([\w:]+)/).each{|matches|
        begin
          # by constantizing the class name,
          # it should trigger it to be autoloaded.
          matches.first.constantize
        rescue NameError
          # I guess that wasn't a class we found after all.
          # Nothing to see here, move along
        end
      }
      load_without_preload_class(str, &p)
    end
    alias_method_chain :load, :preload_class
  end
end
Опубликовал adik в Технотрония | Метки:
Янв
15
2009
0

Good way for drop unused indexes in MySql

Очень хорошими людьми был написан замечательный patch (google-mysql-tools), одним фьючерсов которого является сбор статистики активности использования индексов #UserTableMonitoring

Вот несколько интересных рассуждений как можно мониторить/удалять ненужные индексы:

Тут можно взять билды mysql www.percona.com

Опубликовал adik в Технотрония | Метки: ,
Дек
19
2008
0
Дек
07
2008
0

Too many open files in system

find /proc/ -regextype posix-extended -maxdepth 1 \
-name '[0-9]*' -exec echo -n {} ' ' \; \
-exec sh -c 'ls -1 {}/fd/ | wc -l' \; | \
sort -n -k 2
Опубликовал adik в Технотрония | Метки:
Ноя
28
2008
0

InnoDB, count () в больших базах данных

Как известно, InnoDB не очень хорош при работе с ключами.
Даже при вызове count () по PRIMARY INDEX — будет сканироватся вся таблица. А при огромном количестве записей — ето очень долго.

Вот один выход из проблемы:

CREATE TABLE `count_index_table` (
  `id` int(4) unsigned NOT NULL auto_increment,
  `name` char(100) NOT NULL,
  `size` bigint(20) unsigned NOT NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB;
 
-- Ну очень большая таблица
CREATE TABLE `datatable` (
  `id` bigint(20) unsigned NOT NULL auto_increment,
  `datalong` varchar(255) default NULL,
  PRIMARY KEY  (`id`)
) ENGINE=InnoDB;
 
CREATE TRIGGER `datatable_before_ins` AFTER INSERT ON `datatable`
  FOR EACH ROW
BEGIN
   UPDATE count_index_table
   SET count_index_table.size = count_index_table.size +1
   WHERE count_index_table.name = 'datatable';
END;
 
CREATE TRIGGER `datatable_after_del` AFTER DELETE ON `count1i`
  FOR EACH ROW
BEGIN
   UPDATE count_index_table
   SET count_index_table.size = count_index_table.size-1
   WHERE count_index_table.name = 'datatable';
END;

Источник: http://sql.ru/forum/actualthread.aspx?tid=280049#2535574

Опубликовал adik в Технотрония | Метки:
Окт
09
2008
0

Восстановление программного RAID

Обнаружение ошибки

В случае ошибки промлемный физический том перестаёт использоваться raid-ом, и демон mdadm уведомляет администраторов о происшедшем по почте:

This is an automatically generated mail message from mdadm
running on buki

A Fail event had been detected on md device /dev/md2.

It could be related to component device /dev/sdj2.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [raid1] [raid6] [raid5] [raid4]
md2 : active raid5 sdi2[0] sdl2[3] sdk2[2] sdj2[4](F)
  1463681856 blocks level 5, 64k chunk, algorithm 2 [4/3] [U_UU]

md1 : active raid1 sdk1[0] sdl1[1]
  489856 blocks [2/2] [UU]

md0 : active raid1 sdi1[0] sdj1[1]
  489856 blocks [2/2] [UU]
unused devices:

В данном случае ошибка была обнаружена на устройстве /dev/sdj2, входящем в raid /dev/md2.

(далее...)

Опубликовал adik в Технотрония | Метки: , ,
мая
28
2008
0

Easily build a Debian xen kernel package without PAE

When it comes to building custom parts for my current flavor of Linux distribution I am a bit of a purist and prefer to work within the distributions package management framework. The main reason being is that removal and upgrading of that package is easier and cleaner. With a good package management system like Debian's it is actually easier than CMMI.

Recently I needed to build a custom Debian kernel for xen without pae extentions but I didn't want to use a vanilla kernel. I wanted to use the official Debian kernel with its included distribution specific patches. Searching around the net I found many ways of doing it but they ultimately failed for one reason or another. Others worked but were just messy or incomplete. So I developed what I consider the cleanest and simplest way of building the kernel. It is actually not far off the official Debian kernel package building method. Here's what I did in easy cut'n'paste steps for a fresh Debian Etch system.

  • Login as root or alternatively (and safer) you can use fakeroot.
  • aptitude update
  • aptitude upgrade
  • aptitude install xen-hypervisor-3.0.3-1-i386
  • mkdir debsource
  • cd debsource
  • apt-get source linux-2.6
  • apt-get build-dep linux-2.6
  • cd linux-2.6*
  • sed -i -e «s/-pae//g» debian/arch/i386/xen/defines
  • sed -i -e «s/-pae//g» debian/rules.gen
  • sed -i -e «s/-pae//g» debian/control
  • sed -i -e «s/# CONFIG_NOHIGHMEM is not set/CONFIG_NOHIGHMEM=y/» \
    — e «s/^CONFIG_HIGHMEM/#CONFIG_HIGHMEM/» \
    — e «s/PAE=y/PAE=n/» debian/arch/config.686-bigmem
  • debian/rules debian/build debian/stamps
  • make -f debian/rules.gen setup-i386-xen-686
  • make -f debian/rules.gen binary-arch-i386-xen-686
  • cd ...
  • dpkg -i linux-modules-2.6.18-6-xen-686_2.6.18.dfsg.1-17etch1_i386.deb \
    linux-image-2.6.18-6-xen-686_2.6.18.dfsg.1-17etch1_i386.deb

http://blogs.ittoolbox.com/linux/locutus/archives/easily-build-a-debian-xen-kernel-package-without-pae-22254

Опубликовал adik в Технотрония | Метки: ,
Апр
20
2008
0

How to move a virtual machine from one computer to another

#create a snapshot of the LV drive
/usr/sbin/lvcreate -L5G -s -n vm_test_snap /dev/VolGroup00/vm_test

#turn the snapshop into a file image
dd if=/dev/VolGroup00/vm_test_snap | gzip -9 >/backup/vm_test.dd.gz

#remove the snapshot
/usr/sbin/lvremove /dev/VolGroup00/vm_test_snap

#move the file image

#copy and modify the Xen config file
cp /etc/xen/test /etc/zen/test2
vi /etc/zen/test2 

#change the name of the LV drive to vm_test2

#uncompress the file image into a LV drive
/usr/sbin/lvcreate -n vm_test2 --size 5G VolGroup00
gzip -dc /backup/vm_test.dd.gz | dd of=/dev/VolGroup00/vm_test2
#start the new VM
/usr/sbin/xm create -c test2

Источник: http://quadruple.ca/how-move-virtual-machine-one-computer-another

Опубликовал adik в Технотрония | Метки: ,
Фев
21
2008
0

xen 3.0.3 pygrub

http://www.kuro5hin.org/story/2007/4/23/3719/35994

apt-get source xen-hypervisor-3.0.3-1-i386-pae
cd xen-3.0-3.0.3-0/tools/pygrub/
apt-get install e2fslibs-dev

make

cp -av build/lib.linux-i686-2.4/grub/fsys/ext2 /usr/lib/xen-3.0.3-1/lib/python/grub/fsys/

mkdir -pv /var/lib/xen/
ln -s /usr/lib/xen-3.0.3-1/bin/pygrub /usr/bin/pygrub
Опубликовал adik в Технотрония | Метки:
Фев
20
2008
0

Установка Debian etch на Linux

Приводится пример установки Дебиана/Ubuntu из под других операционных систем.

Ссылки на первоисточники:

(далее...)

Опубликовал adik в Технотрония | Метки:
Фев
14
2008
0

Сборка Ngnix для Debian/Ubuntu

Оригинал http://deb.wapper.ru/nginx/

Если нужен пакет для testing/unstable или Ubuntu, то его надо будет пересобрать:

   1. Взять .dsc, .diff.gz, .orig.tar.gz
   2. dpkg-source -x этот.dsc
   3. cd в получившийся каталог
   4. dpkg-buildpackage -rfakeroot

после этого полученный пакет поставить обычным образом: dpkg -i nginx_0.4*.deb

Пакет по умолчанию собирается с большинством прибамбасов: fastcgi, imap/pop3, ssl. Для удобства траблшутинга есть также непострипанный бинарник с дебаг-символами: /usr/sbin/nginx.debug. Вся необходимая обвязка тоже есть: инит-скрипт, логротатор, вполне-рабочий конфиг.

Также пакет собирается и работает на Ubuntu Linux и на GNUSolaris.

Такую строку в /etc/apt/sources.list можно использовать для добавления репозитария:

deb http://deb.wapper.ru/nginx/ ./
Опубликовал adik в Технотрония | Метки: ,

Работает на WordPress | Локализация: goodwin.wpbot.ru