пятница, 19 декабря 2008 г.

freebsd base update

обновление базовой системы freebsd

1. cvs -d anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs co -rRELENG_6_4 src (если хочется ветку stable, RELENG_6) , альтернативный вариант Here

2. Переносим текущую папку /usr/src в /usr/src.bk
3. Распаковываем свежие исходники /usr/src
4. Копируем из /usr/src.bk/sys/i386/conf/КОНФИГ_ЯДРА в /usr/src/sys/i386/conf/
5. Долго и упорно читаем файл /usr/src/UPDATING, если требуется правка ядра правим
6. make -s -j 4 buildworld (идем пить чай)
7. make -s -j 4 kernel KERNCONF=КОНФИГ_ЯДРА
6. mergemaster -p , смотрим думаем выбираем
7. стопим jail (если есть), и вообще все что лишнее, комментируем автозапуск
8. reboot
9. make installworld
10. make delete-old
10.1  make delete-old-libs (дважды подумать , софт придется пересобирать)
11. mergemaster
12. крестимся,ребут
13. загружаемся, запускаем, по очереди необходимые сервисы, кроме всего что связано с jail
14. смотрим на функционал
15. make installworld DESTDIR=/js/JAIL_NAME
16. mergemaster -i -C -D $JAIL (jail mergemaster)
17. запускаем jails

distclean

чиста старых distfile в FreeBSD

portsclean --distclean

четверг, 4 декабря 2008 г.

fastcgi php wrapper

wrapper для lighttpd

#!/bin/sh
PHP_FCGI_CHILDREN=3
export PHP_FCGI_CHILDREN
PHP_FCGI_MAX_REQUESTS=5000
export PHP_FCGI_MAX_REQUESTS

#export PHP_FCGI_MAX_REQUESTS=0
exec /usr/local/bin/php-cgi

вторник, 25 ноября 2008 г.

archlinux unbound startscript

стартовый скрипт для unbound в archlinux


#!/bin/bash

. /etc/rc.conf
. /etc/rc.d/functions

PID=`cat /usr/local/etc/unbound/unbound.pid 2>/dev/null`

case "$1" in
start)
stat_busy "Starting Unbound DNS"
if [ -z "$PID" ]; then
/usr/local/sbin/unbound -c /usr/local/etc/unbound/unbound.conf &
fi
if [ ! -z "$PID" -o $? -gt 0 ]; then
stat_fail
else
add_daemon unbound
stat_done
fi
;;
stop)
stat_busy "Stopping Unbound DNS "
[ ! -z "$PID" ] && kill $PID &> /dev/null
if [ $? -gt 0 ]; then
stat_fail
else
rm_daemon unbound
stat_done
fi
;;
restart)
$0 stop
sleep 1
$0 start
;;
*)
echo "usage: $0 {start|stop|restart}"
esac
exit 0

понедельник, 24 ноября 2008 г.

ssh back tunnel

создание обратного ssh туннеля, в случае если необходимо пробиться в сетку через нат

необходимо:
1. локальная тачка.
2. удаленный сервер доступный из вне.

с локальной машины выполняем

ssh -f -N user@example.com -R 12345:localhost:22

на сервере выполняем
ssh user@locahost -p 12345


сперто: http://www.opennet.ru/tips/info/1691.shtml

четверг, 20 ноября 2008 г.

apache Custom log

собственно понадобилось смотреть какой процесс apache и сколько выполняется


Включаем в модулях config_log_module

пишем в конфиге
интересующие нас опции %T %P

LogFormat "%h %l %u %t \"%r\" %>;s %b \"%{Referer}i\" \"%{User-Agent}i\" %T %P" combined
LogFormat "%h %l %u %t \"%r\" %>s %b" common
LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

в виртуальном хосте пишем
CustomLog "| /usr/local/sbin/rotatelogs /var/log/apache/httpd-access.log 5184000" combined

5184000 - периодичность rotate в секундах

пример результата
..."Opera/9.27 (Windows NT 5.1; U; en)" 0 65405

среда, 19 ноября 2008 г.

работа с tape changer

работа с DDS лентами в ченджере

chio status - посмотреть статус
chio move slot 1 drive 0 - вставить ВТОРУЮ ленту в ченджер
chio return drive 0 - вернуть ленту обратно в стек

mt -f /dev/nsa0 rewind - перемотать ленту в начало
получение freebsd src через subversion


cd /download_dir
svn co svn://svn.freebsd.org/base/stable/7 src

Последующие разы
cd /download_dir
svn up

четверг, 13 ноября 2008 г.

vsftpd.conf

tiny vsftpd config

dirmessage_enable=YES
chown_uploads=NO
xferlog_enable=YES
idle_session_timeout=600
data_connection_timeout=120
ascii_upload_enable=NO
ascii_download_enable=NO
chroot_list_enable=YES
chroot_list_file=/etc/chroot_list
listen=YES
ls_recurse_enable=NO

anonymous_enable=NO
anon_upload_enable=NO
anon_mkdir_write_enable=NO

local_enable=YES
write_enable=YES

среда, 29 октября 2008 г.

mysql root password renew

1. В стартовом скрипте находим строчку которая содержит текст mysqld_safe и добавляем новый параметр --skip-grant-tables
2. Запускаем MySQL сервер
3. Логинимся на mysql сервер и пересоздаем пароль:

# mysql -u root mysql

mysql> UPDATE user SET Password=PASSWORD('newrootpassword') WHERE User='root';
mysql> FLUSH PRIVILEGES;

четверг, 23 октября 2008 г.

mutt замена from

при отправке сообщений через mutt в поле from выглядит так.
user@compname.domain.local в принципе это не является большой проблемой хотя и нарушает RFC, но некоторые компании фильтруют такие сообщение так как не могут отрезолвить хост например paypal.com.

Решение:
в Muttrc добавить

set envelope_from="yes"
ещё опционально
set hostname="example.com" добавит нужный домен, если у вас их несколько, то есть в логе и при проверке на спам будет выглядеть как user@example.com

вторник, 21 октября 2008 г.

Файл заданного размера

Создать файл со случайным содержимым заданного размера

dd if=/dev/urandom of=testdump bs=1024 count=102400

bs - размер блоксайза в байтах

count - количество blocksize`ов

FreeBSD Bestie off

Экономим время при загрузке FreeBSD сервера

/boot/loader.conf
autoboot_delay="1"
userconfig_script_load="YES"
beastie_disable="YES"

пятница, 10 октября 2008 г.

Посласть письмо с консоли

иногда надо послать письмо с консоли, например проверить не открыт ли relay

telnet mail.example.com 25 или cat -|nc mail.example.com 25
ehlo username
mail from: user1@example1.com
rcpt to: user2@example.com
data
To: user2@example.com
Subject: Test

some data
.

суббота, 13 сентября 2008 г.

замена строк в файлах

как изменить в нескольких файлах строчки

sed -i .bak -e 's/old_string/new_string/' *

команда заменит строчку и сделает резервную копию файлов

sed -e 's/<span class="f_Heading1">\(.*\)<\/span>/<h1>\1<\/h1>/g'

обработка тегов вокруг текста, сам текста остается нетронутым

среда, 10 сентября 2008 г.

чистка postfix очереди

Очистка очереди postfix от всякого мусора например от MAILER-DAEMON

Вариант 1.

postqueue -p | tail +2 | awk 'BEGIN { RS = ""} { if ($7 ~ "MAILER-DAEMON") print $1}' | tr -d '*!' | postsuper -d -

Вариант 2.

mailq|grep MAILER-DAEMON|awk '{print $1}'|sed -e 's/\*$//'|xargs -J{} -n1 postsuper -d {} deferred

вторник, 9 сентября 2008 г.

JAVA_HOME undefine

иногда при сборке некоторого софта из портов

появляется сообщение
Environment error: "JAVA_HOME" should not be defined

лечиться просто и быстро в консоли

unset JAVA_HOME

воскресенье, 7 сентября 2008 г.

mysql частые команды

создать пользователя с правами на работу с базами по маске
CREATE USER 'monty'@'localhost' IDENTIFIED BY 'some_pass';  #mysql 5* specific

GRANT ALL PRIVILEGES ON `mask%`.* TO 'username'@'%mylocal.domain' WITH GRANT OPTION;

------
снять данные привелегиии

revoke grant option on `mask%`.* From 'username'@'%mylocal.domain';

------
создать пароль для пользователя

update mysql.user set Password=password('here_password') where host='hostname' and user='username';

------
для работы со старыми клиентами

update mysql.user set Password=old_password('here_password') where host='hostname' and user='username';

------

вывести базы данных по маске

show databases like 'mask%';
------
добавить возможность выполнять  RESET QUERY CACHE;

 GRANT RELOAD, PROCESS  on  *.* to 'username'@'localhost' 


-----
подключить engine плагины

INSTALL PLUGIN innodb SONAME 'ha_innodb_plugin.so';
INSTALL PLUGIN sphinx SONAME 'ha_sphinx.so';


будут доступны после рестарта

вторник, 5 августа 2008 г.

expat xml apache2

FreeBSD

понадобилось прикрутить expat к php5 вместо libxml 2

при сборке указать '--with-libexpat-dir=/usr/local/lib/'

результат EXPAT Version expat_2.0.1

xterm с решетками

FreeBSD
проблема после сборки xterm с кодировкой koi8-r, при копипасте решетки

cd /usr/ports/x11/xterm
vim Makefile
удаляем такие строки
--enable-wide-chars --enable-luit
пересобираем


исправляем кракозябры вместо русских букв

/usr/local/lib/x11/app-default/XTerm

добавить

*VT100.font: -misc-fixed-medium-r-semicondensed--13-120-75-75-c-60-koi8-r
*VT100.font2: -misc-fixed-medium-r-normal--8-80-75-75-c-50-koi8-r
*VT100.font3: -misc-fixed-medium-r-normal--14-130-75-75-c-70-koi8-r
*VT100.font4: -misc-fixed-medium-r-normal--13-120-75-75-c-80-koi8-r
*VT100.font5: -misc-fixed-medium-r-normal--18-120-100-100-c-90-koi8-r
*VT100.font6: -misc-fixed-medium-r-normal--20-200-75-75-c-100-koi8-r

четверг, 24 июля 2008 г.

создание критораздела на основе geli

FreeBSD only, ну или для тех систем где geli работает

1) создать ключ
dd if=/dev/random of=/boot/keys/da0.key bs=128k count=1
2) инициировать крипто раздел
geli init -b -K /root/keys/da0.key -s 4096 -l 256 /dev/da0s1c
geli init -b -s 4096 -l 256 /dev/da0s1c (не использовать ключевой файл)
3) включить раздел
geli attach -k /boot/keys/da0.key /dev/da0s1c
geli attach /dev/da0s1c (без ключевого файла)

4) выключить geli
geli detach /dev/da0s1c

копирование с помощью tar

tar -cf - -C srcdir . | tar xpf - -C destdir

для копирования на удаленный хост
tar -cf - -C srcdir . | ssh -l user host "tar -xpvf - -C desdir"
tar -cf - -C srcdir . | ssh -l user host " cat - > filename.tar "

понедельник, 21 июля 2008 г.

фейковый ssl сертификат по быстрому

1. openssl genrsa 2048 -out > server.key
2. openssl req -new -key server.key > server.csr
3. openssl x509 -req -days 1825 -in server.csr -signkey server.key > server.crt

for lighttpd
4.cat server.key server.crt > server.pem

пятница, 18 июля 2008 г.

сборка libassuan

очередная пачка ошибок

1.
source='putc_unlocked.c' object='putc_unlocked.o' libtool=no DEPDIR=.deps depmode=gcc /bin/sh ../depcomp cc -DHAVE_CONFIG_H -I. -I.. -I.. -I../include -O -pipe -I/usr/local/include/pth -Wall -Wcast-align -Wshadow -Wstrict-prototype
s -Wpointer-arith -c putc_unlocked.c
putc_unlocked.c:28: redefinition of `__sputc'
/usr/include/stdio.h:361: `__sputc' previously defined here
*** Error code 1


открываем libassuan-1.0.4/src/putc_unlocked.c
#ifdef HAVE_CONFIG_H
#include
#endif

#include
// добавляем
#undef putc_unlocked

2.
gcc32 -O -pipe -march=pentiumpro -I/usr/local/include/pth -Wall -Wcast-align -Wshadow -Wstrict-prototypes -Wpointer-arith -o fdpassing fdpassing.o ../src/libassuan.a
../src/libassuan.a(assuan-inquire.o): In function `assuan_inquire':
assuan-inquire.o(.text+0x27a): undefined reference to `stpcpy'
../src/libassuan.a(assuan-inquire.o): In function `assuan_inquire_ext':
assuan-inquire.o(.text+0x73b): undefined reference to `stpcpy'
collect2: ld returned 1 exit status


открываем libassuan-1.0.4/src/assuan-inquire.c

переименовываем stpcpy в strcpy

p.s. за решение первой проблемы спасибо
http://solutions.szylko.com

обновление p5-Encode-Detect

есть в хозяйстве старая тачка с FreeBSD 4.11

при попытке обновить пакет p5-Encode-Detect получал ошибку

lib/Encode/Detect/Detector.c:79: syntax error before `__attribute__'
lib/Encode/Detect/Detector.c:80: syntax error before `__attribute__'
lib/Encode/Detect/Detector.c:85: register name not specified for `struct SV ** mark'
lib/Encode/Detect/Detector.c:85: `sp' was not declared in this scope
lib/Encode/Detect/Detector.c:87: syntax error before `if'
error building lib/Encode/Detect/Detector.o from 'lib/Encode/Detect/Detector.c' at /usr/local/lib/perl5/site_perl/5.8.8/ExtUtils/CBuilder/Base.pm line 110.
*** Error code 2


решение:
в файле p5-Encode-Detect/work/Encode-Detect-1.01/lib/Encode/Detect/Detector.xs
коментируем строку 43 и 45

43 // #if __GNUC__ == 3 && __GNUC_MINOR__ <= 3
44 #undef HASATTRIBUTE_UNUSED
45 // #endif

среда, 16 июля 2008 г.

вызов удаленного X приложения через ssh

вот такой вот биндинг висит у меня для вызова sylpheed с удаленного сервера.
xhost +remote_server.local ;ssh -l nightfog remote_server.local "export LANG=ru_RU.KOI8-R ;DISPLAY=my_workstation.local:0.0 sylpheed"

среда, 9 июля 2008 г.

MyISAM 2 InnoDB

понадобилось перетащить базу из MyISAM в InnoDB
слить дамб
выполнить команду
cat dump.sql| sed 's/ENGINE=MyISAM/ENGINE=InnoDB/' > dump_innodb.sql
залить дамб

mysql tablespaces

при попытке сделать dump с базы получил вот такую штуку

mysqldump -p -hdb my_db > dump.sql
mysqldump: Error: Couldn't dump tablespaces SELECT command denied to user 'nightfog'@'blalbla.coml' for table 'FILES'

ошибка возникала когда делаешь dump клиентом 5.1 с базы 4.1.22

решения оказалось два

1. mysqldump -p --no-tablespaces -hdb my_db > dump.sql

2. поставить клиент 5.0.* судя по ману данная фича появилась в 5.1.6

среда, 2 июля 2008 г.

извечная тема со шрифтами

уже много раз избитая тема, но добавлю все же наверное, то что делал я на ноуте с 15.4" экраном

Установил freefont с включенными SUBPIXEL_RENDERING и BYTECODE_INTERPRETER. 

мой файлик .fonts.conf



<?xml version="1.0"?>
<!DOCTYPE fontconfig SYSTEM "fonts.dtd">
<fontconfig>
 <match target="font" >
  <edit mode="assign" name="rgba" >
  <const>rgb</const>
  </edit>
  <edit mode="assign" name="hinting" >
  <bool>true</bool>
  </edit>
  <edit mode="assign" name="antialias" >
  <bool>true</bool>
  </edit>
  <edit mode="assign" name="autohint" >
  <bool>false</bool>
  </edit>
  <edit mode="assign" name="hintstyle" >
  <const>hintfull</const>
  </edit>
 </match>
 <match target="font" >
  <edit mode="assign" name="rgba" >
  <const>rgb</const>
  </edit>
 </match>
 <match target="font" >
  <edit mode="assign" name="hinting" >
  <bool>true</bool>
  </edit>
 </match>
 <match target="font" >
  <edit mode="assign" name="hintstyle" >
  <const>hintfull</const>
  </edit>
 </match>
 <match target="font" >
  <edit mode="assign" name="antialias" >
  <bool>true</bool>
  </edit>
 </match>
</fontconfig>

в /etc/X11/xorg.conf

DisplaySize 313 234

в секции Device

Option "UseEdidDpi" "FALSE"
Option "DPI" "96,4 x 96,4"

как то так.