ноября 29, 2008
миграция с mysql на postgresql (mysql to postgresql migration)
mysqldump DATABASE_NAME -nt -v --compatible=ansi,postgresql --complete-insert=TRUE --extended-insert=FALSE --compact --default-character-set=UTF8 -u DATABASE_USER -p -r OUTPUT_FILE.sql
psql DATABASE_NAME < OUTPUT_FILE.sql
ноября 18, 2008
Чудо :)
set -o vi
set -o emacs
Век живи - век учись :)
ноября 17, 2008
Облом...
утанавливаю сразу на программный рэйд. вылетает с ошибкой на этапе базовой системы.
начал разбираться - mdamd not found. странно и не вовремя.
ноября 03, 2008
Перезд базы MySQL со сменой MyISAM на InnoDB.
делаем копию
mysqldump database -u sergey -p | sed -e 's/ENGINE=MyISAM/ENGINE=InnoDB/g' > dump_database_innodb.sql
восстанавливаем
mysql database -u root -p < dump_database_innodb.sql
октября 18, 2008
Начало положено :) (создаю свой репозиторий)
- зарегистрировал домен
- закончил тестировать ядро с патчем
- нашел несколько часов на пересборку ядра, создание репозитория
"Альфа" версия моих стараний вот здесь: http://uname.su/ubuntu/
На поддержку репозитория настроен серьезно, хотя пока и без единомышленников :)
октября 11, 2008
Ubuntu и обоина в консоли (framebuffer console decorator && splashutils)
вот скрин: скрин с заставкой cmatrix:

Обнаружил, что почти во всех статьях и how-to по пересборке ядра ubuntu описывается либо чисто дебиановский метод (kpkg) либо классический "простой как молоток" make menuconfig - make bzimage ,etc.
ubuntu-way представляет интерес, чтобы, например при пересборке ядра (разумеется в пределах доступных версий в используемой версии ubuntu) не отвалились драйвера nvidia.
думаю, что с меня:
- скрин консоли (когда разберусь как в вордпресс картинки выкладывать :)))
- заметка про убунтовскую пересборку ядра.
объединение сетевых интерфейсов в FreeBSD
/etc/rc.conf:
cloned_interfaces="lagg0"
ifconfig_bge0="up"
ifconfig_bge1="up"
ifconfig_lagg0="laggproto lacp laggport bge0 laggport bge1 192.168.111.100 netmask 0xffffff00"
работает без лишних телодвижений в сторону настройки procurve 2626, к которому подключен сервер.
дополнительно: man lagg
сентября 26, 2008
startup скрипты Oracle 11g и Oracle EM 11g
% cat /etc/init.d/oracle
#!/bin/bash
#
# oracle Init file for starting and stopping
# Oracle Database. Script is valid for 11g versions.
#
# chkconfig: 35 80 30
# description: Oracle Database startup script# Source function library.
. /etc/rc.d/init.d/functions
ORACLE_OWNER="oracle"
ORACLE_HOME="/opt/oracle/orahome11/11.1.0/db_1"
case "$1" in
start)
echo -n $"Starting Oracle DB:"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbstart $ORACLE_HOME"
echo "OK"
;;
stop)
echo -n $"Stopping Oracle DB:"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/dbshut $ORACLE_HOME"
echo "OK"
;;
restart)
$0 stop
$0 start
echo "OK"
;;
*)
echo $"Usage: $0 {start|stop|restart}"
esac
% cat /etc/init.d/oraemctl
#!/bin/bash
#
# oraemctl Starting and stopping Oracle Enterprise Manager Database Control.
# Script is valid for 11g versions.
#
# chkconfig: 35 80 30
# description: Enterprise Manager DB Control startup script# Source function library.
. /etc/rc.d/init.d/functions
ORACLE_OWNER="oracle"
ORACLE_HOME="/opt/oracle/orahome11/11.1.0/db_1"
case "$1" in
start)
echo -n $"Starting Oracle EM DB Console:"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl start dbconsole"
echo "OK"
;;
stop)
echo -n $"Stopping Oracle EM DB Console:"
su - $ORACLE_OWNER -c "$ORACLE_HOME/bin/emctl stop dbconsole"
echo "OK"
;;
restart)
$0 stop
$0 start
echo "OK"
;;
*)
echo $"Usage: $0 {start|stop|restart}"
esac
сентября 19, 2008
как минимизировать потери при "реанимации" зависшей системы Линукс.
скорее в дополнение к заметке: http://blogs.sysfaq.ru/kukulkan/2008/08/19/forced-reboot-shutdown-in-linuxb/
Итак, ситуация: система в аварийном состоянии. сервисы не отвечают, ssh отваливается по таймауту - приходится идти в аппаратную или использовать kvm. Холодная перезагрузка (отключением питания, кнопкой reset) не всегда возможна, поскольку может привести к потере данных.
Достаточно часто к зависшей системе получается обратиться с помощью "магических" сочетаний клавиш:
ALT + SysReq + ? - вывод справки о возможных комбинациях
ALT + SysReq + s - сбросить буферы FS на диск (на высоконагруженных системах может занять очень много времени, однако для уверенности необходимо дождаться сообщения OK от этой комманды).
ALT + SysReq + e - отправить SIGTERM процессам (мягкое завершение с сохранением данных).
ALT + SysReq + i - отправить SIGKILL процессам (принудительное завершение)
ALT + SysReq + u - отмонтировать дисковые разделы. рекомендуется и следует выполнять ТОЛЬКО после успешно выполненной синхронизации буферов (ALT + SysReq + s)
ALT + SysReq + b - перезагрузить систему
ALT + SysReq + r - перевести клавиатуру в сырой (raw) режим.
порядок действий:
синхронизируем для уверенности буферы FS, посылаем процессам SIGTERM, затем SIGKILL, снова синхронизируем буферы и отправляем систему в перезагрузку.
для работы этих сочетаний клавиш необходима опция в ядре CONFIG_MAGIC_SYSRQ (по-умолчанию включена в серверных и десктопных ядрах UBUNTU)
как это работает с описанием можно прочесть в исходниках (файл ./drivers/char/sysrq.c)
заставка/скринсэйвер а-ля "код матрицы" в консоли
установка в debian/ubuntu:
apt-get install cmatrix
у программки есть опции, влияющих на выводимый поток символов.
скриншот работы cmatrix в xterm:
netams и pf
Итак, есть сенсор netflow - pfflowd. С его помощью мы можем генерит поток netwlow о трафике, прошедшим через пакетный фильтр pf. Netams в этой схеме будет коллектором netflow и считать трафик. По сравнению с использованием IPFW и divert, в конфигурации netams поменяется только source. Однако в этом случае нетамс не может блокировать аккаунты. Решение: связать через сервис processor (например):
в конфиге нетамса
access-script "/sbin/inet.sh"
сам скрипт:
#!/bin/sh
case "$1" in
DENY)
pfctl -q -t allow_inet-T delete $3 pfctl -q -k $3
;;
ALLOW)
pfctl -q -t allow_inet -T add $3 ;;
esac
в настройках PF:
# создаем таблицу вот так:
table <allow_inet> persist file "/etc/pf/allow_inet"
# или так:
table <allow_inet> persist
nat on $ext_if inet proto tcp from <allow_inet> to any -> $ext_if
pass in on $int_if inet proto tcp from <allow_inet> to any
Обратите внимание на аргументы $1 - действие (DENNY|ALLOW ) и $3 - IP адрес. Они передаются скрипту нетамсом.
P.S. сейчас модно netflow генерить через ng_netflow. pfflowd - просто "элегантное" решение, которое мне нравится.
августа 20, 2008
Создание программного массива RAID-1, FreeBSD.
загрузка модуля
% echo 'geom_mirror_load=YES' >> /boot/loader.conf
% gmirror load
cоздать mirror, добавить в него диск
% gmirror label -v -n -b round-robin gm0 /dev/da1
если диск используется, то операция завершится ощибкой. решение:
% sysctl kern.geom.debugflags=16
добавить второй диск:
% gmirror insert gm0 /dev/da2
- проверить состояние массива
% gmirror status
- заменить диск в массиве после отключения\поломки
% gmirror forget gm0
% gmirror configure -a gm0
% gmirror insert gm0 /dev/da3
- заменить диск в массиве
% gmirror remove gm0 /dev/da1
% gmirror configure -a gm0
% gmirror insert gm0 /dev/da3
Forced reboot & shutdown in linux.
echo 1 > /proc/sys/kernel/sysrq
echo b > /proc/sysrq-trigger
Forced Shutdown
echo 1 > /proc/sys/kernel/sysrq
echo o > /proc/sysrq-trigger
