раскоментировать/создать директиву:
# daemon_smtp_port = 25:465
второй параметр — номер дополнительного порта.
раскоментировать/создать директиву:
# daemon_smtp_port = 25:465
второй параметр — номер дополнительного порта.
годный рабочий мануал:
for i in `seq 1 1000`; do mysql -u root --password=bad -h 127.0.0.1 2>/dev/null; done
Представлена детальная информация об уязвимости, исправленной в недавно выпущенных обновлениях MariaDB 5.5.23/5.3.6/5.1.62/5.2.12 и MySQL 5.5.24/5.1.63/5.6.6 (все более ранние релизы подвержены проблеме). Уязвимость позволяет злоумышленнику осуществить аутентифицированный вход под любым пользователем без ввода корректного пароля.
установить флаг защиты:
chflags -R schg ./fileordir
снять флаг защиты:
chflags -R noschg ./fileordir
при обновлении php в phpbb появляются ошибки:
Warning: Cannot modify header information - headers already sent by (output started at /home/a.leonov/data/www/bus.v-srv.ru/includes/utf/utf_tools.php:1663) in /home/a.leonov/data/www/bus.v-srv.ru/includes/functions.php on line 4668
лечицца так:
Try this.
In startup.php find:
phpBB/includes/startup.php:error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED);
replace with:
error_reporting(E_ALL & ~E_NOTICE & ~E_DEPRECATED & ~E_STRICT);
помимо установленных плагинов и прописанного в munin-node.conf вот этого:
[postgres_*]
user postgres
env.PGUSER postgres
env.PGPORT 5432
env.PGHOST localhost
env.PGPASSWORD 123
в убунту надо поставить пакет:
libdbd-pg-perl
это перловый драйвер доступа к postgres
также есть проблема вот в этом модуле:
/usr/share/perl5/Munin/Plugin/Pgsql.pm
из-за него в логи сыпятся ошибки вот такого плана:
2012/05/22-11:57:59 [20608] Error output from postgres_transactions_ALL:
2012/05/22-11:57:59 [20608] Unable to detect PostgreSQL version
ну, и графики, соответственно не рисуются.
лечицца так, ищем рутинку:
sub get_version {
my ($self) = @_;
return if (defined $self->{detected_version});
my $r = $self->runquery("SELECT version()");
my $v = $r->[0]->[0];
die "Unable to detect PostgreSQL version\n"
unless ($v =~ /^PostgreSQL (\d+)\.(\d+)\.(\d+) on/);
$self->{detected_version} = "$1.$2";
}
строка
unless ($v =~ /^PostgreSQL (\d+)\.(\d+)\.(\d+) on/);
пытается распарсить селект из базы, который у нас выглядит вот так:
root@1c:~# psql -U postgres -W -h localhost
Password for user postgres:
psql (9.0.4-alt1)
Type "help" for help.
postgres=# select version();
version
----------------------------------------------------------------------------------------------------------------
PostgreSQL 9.0.4-alt1 on x86_64-pc-linux-gnu, compiled by GCC gcc (Ubuntu/Linaro 4.6.3-1ubuntu5) 4.6.3, 64-bit
(1 row)
postgres=# \q
т.е вместо 3 цифр версии у нас есть приписка в виде «-alt1», которую скрипт увидеть не ожидает.
правим строчку парсинга просто дописывая недостающий момент:
unless ($v =~ /^PostgreSQL (\d+)\.(\d+)\.(\d+)-alt1 on/);
все работает.
wget http://snapshot.debian.org/archive/debian/20100801T150833Z/pool/main/p/php5/php5-fpm_5.3.3-1_amd64.deb
dpkg -x php5-fpm_5.3.3-1_amd64.deb fpm
dpkg -e php5-fpm_5.3.3-1_amd64.deb fpm/DEBIAN/
sed -i 's/php5-common (= 5.3.3-1)/php5-common (>= 5.3.3-1)/g' fpm/DEBIAN/control
dpkg -b fpm/ php5-fpm_5.3.3-1_amd64_patched.deb
dpkg -i php5-fpm_5.3.3-1_amd64_patched.deb
взято тут:
http://www.zagirov.name/debian-testing-install-php5-fpm
решение взято тут:
http://forum.ispsystem.com/ru/showthread.php?t=16086
расшифровка:
Захотелось через панель поставить phpmyadmin, установилась, вижу приглашение для ввода логина и пароля, ввожу и наблюдаю практически белый экран и два символа «?>»
Решение: открываем файл /usr/local/www/phpMyAdmin/config.inc.php и грохаем лишние «?>»
http://www.opennet.ru/tips/2681_freebsd_gpt_raid_gmirror.shtml
# dd if=FreeBSD-9.0-RELEASE-amd64-memstick.img of=/dev/da0 bs=10240 conv=sync
проверка и творческое переосмысливание вот этой статьи:
http://forums.freebsd.org/showthread.php?t=24936
собственно:
в наличии виртуальная фря 9 стабле проапанная с 8.2 (важно, т.к название дисковых устройств из 8ки) работающая в hvm режиме с настроенной сетью (важно, т.к получить доступ из citrix xencenter к консоли неполучилось, изображение есть, а клаву не слушается).
собираем ядро:
root@freebsd-vm# cd /usr/src
root@freebsd-vm# make -j8 buildworld
root@freebsd-vm# make -j8 kernel KERNCONF=XEN
копируем ядро на сам xenserver:
root@freebsd-vm# scp /boot/kernel/kernel "xenserver-ip":/root
правим основные конфиги на виртуалке:
в /etc/fstab заменяем все ad0 (и, если там есть ada0) на xbd0 (не перепутай буквы b и d — это важно!)
в /etc/ttys добавляем строчку (и, походу, это не все. в этом кроется секрет доступа к консоли виртуалки из xencenter):
xc0 "/usr/libexec/getty Pc" vt100 on secure
и (важно) в файле /etc/rc.conf правим имя сетевого интерфейса с rl0 на xn0 — тогда после рестарта получим рабочую сеть, и достучимся до виртуалки по ssh.
далее все делаем на xenserver:
root@xenserver# mkdir /boot/guest/
root@xenserver# mv /root/kernel /boot/guest/freebsd-9.0-xen-kernel
root@xenserver# xe vm-list (ищем uuid нашей виртуалки и запоминаем его)
root@xenserver# xe vm-param-set uuid="vm-uuid" HVM-boot-policy=""
root@xenserver# xe vm-param-set uuid="vm-uuid" PV-kernel="/boot/guest/freebsd-9.0-xen-kernel"
root@xenserver# xe vm-param-set uuid="vm-uuid" PV-args="boot_verbose=1,vfs.root.mountfrom=ufs:/dev/xbd0s1a,kern.hz=100"
ребутимся.
root@freebsd-vm# uname -a
FreeBSD rt.v-srv.ru 9.0-STABLE FreeBSD 9.0-STABLE #0: Tue Apr 10 20:44:58 MSK 2012 root@rt.v-srv.ru:/usr/obj/usr/src/sys/XEN i386
root@freebsd-vm# ifconfig
lo0: flags=8049
options=3
inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1
inet6 ::1 prefixlen 128
inet 127.0.0.1 netmask 0xff000000
nd6 options=21
xn0: flags=8843
options=503
ether 1e:5d:d7:09:a2:a2
inet xxx.yyy.zzz.ggg netmask 0xfffffff0 broadcast xxx.yyy.zzz.255
inet6 fe80::1c5d:d7ff:fe09:a2a2%xn0 prefixlen 64 scopeid 0x2
nd6 options=21
media: Ethernet manual
status: active
root@freebsd-vm# df -h
Filesystem Size Used Avail Capacity Mounted on
/dev/xbd0s1a 9.7G 4.5G 4.5G 50% /
devfs 1.0k 1.0k 0B 100% /dev
root@freebsd-vm#
iwfm.
общий симпотом шняги в /var/log/messages:
Approaching the limit on PV entries, consider increasing either the vm.pmap.shpgperproc or the vm.pmap.pv_entry_max tunable
лечится прописыванием в /boot/loader.conf повышенной величины, типа:
vm.pmap.shpgperproc=400
дефолтное значение этого — 200
в логи сыпет нечто, вот такого плана:
Mar 13 08:30:11 rt sshd[7261]: error: Could not load host key: /etc/ssh/ssh_host_ecdsa_key
борется вот этим:
# ssh-keygen -t ecdsa -f /etc/ssh/ssh_host_ecdsa_key
http://forum.xeksec.com/f18/t58360/
for i in `seq 1 1000`; do touch $i.tmp; done
на фрюхе, помимо установки порта zoneinfo и перезапуска tzsetup, надо обратить внимание на то, какое время отдает пхп:
[root@adm /]# php -r "echo date('r');"
Wed, 23 Nov 2011 13:18:28 +0400
(тут если время неверное, то pecl install timezonedb, либо, если pecl нет, то порт /usr/ports/misc/pecl-timezonedb/)
и
mysql
mysql> select now();
+---------------------+
| now() |
+---------------------+
| 2011-11-23 13:20:08 |
+---------------------+
1 row in set (0.00 sec)
mysql>
ну а мускуль достаточно просто перезапустить.
если на zfs лежит корень — _обязательно_ перезаписать бутблоки:
посмотреть имена устройств:
[root@sd1 ~]# gpart show
=> 34 1953525101 ad4 GPT (931G)
34 256 1 freebsd-boot (128k)
290 8388608 2 freebsd-swap (4.0G)
8388898 1945136237 3 freebsd-zfs (927G)
=> 34 1953525101 ad6 GPT (931G)
34 256 1 freebsd-boot (128k)
290 1953524845 2 freebsd-zfs (931G)
=> 34 1953525101 ad8 GPT (931G)
34 256 1 freebsd-boot (128k)
290 1953524845 2 freebsd-zfs (931G)
=> 34 1953525101 ad10 GPT (931G)
34 256 1 freebsd-boot (128k)
290 1953524845 2 freebsd-zfs (931G)
[root@sd1 ~]#
и после записать новые бутблоки во все устройства, где они были:
gpart bootcode -p /boot/gptzfsboot -i 1 adN
если же, на грабли уже наступили. т.е обновились и перезагрузились без перезаписи бутблоков, то алгоритм следующий:
качаем последний образ с freebsd.org, где есть поддержка текущих (обновленных) версий zfs/zpool, грузимся в livefs и делаем:
zpool import имя_пула
если ругается, ставить ключик -f. Если вы забыли имя пула — вы в жопе!!!! Лично я не знаю (пока) способа его посмотреть в этой ситуации.
zfs mount -a
и после этого уже перезаписывать бутблоки по указанному выше алгоритму.
есть мнение, что zfs при du > 80% начинает тормозить на io. решил провести эксперимент.
условия:
core2duo/4GbRAM/2x1TbSATA. диски в zfs mirror. берем из /dev/zero 10Гб нулей и пишем их в файл при разной заполненности файловой системы.
xsd0# zpool upgrade
This system is currently running ZFS pool version 15.
All pools are formatted using this version.
xsd0# zfs upgrade
This system is currently running ZFS filesystem version 4.
All filesystems are formatted with the current version.
xsd0#
dd if=/dev/zero of=./10G.file bs=1M count=10000
первый опыт. 77% файловой системы заполнено:
10485760000 bytes transferred in 134.247570 secs (78107634 bytes/sec)
87% ФС заполнено:
10485760000 bytes transferred in 136.476701 secs (76831869 bytes/sec)
98% ФС заполнено:
10485760000 bytes transferred in 169.070228 secs (62020145 bytes/sec)
как-то, не подтвердилась теория. вывод: или теория неверна, или метод проверки выбран не правильно.
в configure надо найти:
accept authenticated = *
control = submission
и заменить на:
accept authenticated = *
control = submission/sender_retain
#!/bin/sh
#---------------------------------------------------------------------------------------------
export path=/sbin:/bin:/usr/sbin:/usr/bin:/mnt2/sbin:/mnt2/bin:/mnt2/usr/sbin:/mnt2/usr/bin
export PATH=/sbin:/bin:/usr/sbin:/usr/bin:/mnt2/sbin:/mnt2/bin:/mnt2/usr/sbin:/mnt2/usr/bin
#swap partition size in MB
swapsize=512
err() {
echo Error $1;
exit 1
}
diskdrive=$1
#add check for -z $1
#Create MBR geometry on the disk
gpart create -s mbr $diskdrive || err "Creating MBR geometry on the disk $diskdrive"
begin=`gpart show $diskdrive | grep "\- free -"|awk '{print $1}'`
size=` gpart show $diskdrive | grep "\- free -"|awk '{print $2}'`
echo "Creating FreeBSD partition for ZFS pool. Start from sector# $begin with sise $size on $diskdrive"
slice=`gpart add -b $begin -s $size -t freebsd $diskdrive|awk '{print $1}'` || err "Creating partition"
index=`gpart show $diskdrive|grep "freebsd"|awk '{print $3}' `
gpart create -s BSD $slice || err "gpart create -s BSD $slice"
echo "slice:$slice index:$index"
gpart set -a active -i $index $diskdrive
echo ----------------------------------------
gpart show $slice
echo ----------------------------------------
#creating two slice
# freebsd-zfs whool disk - $swapsize
# freebsd-swap $swapsize
#mathematics
whoolsize=`gpart show $slice | grep "\- free -"|awk '{print $2}'`
end1=`echo "$whoolsize-$swapsize*1024*2"|bc`||err "calculate middle point"
swapsizeb=`echo "$swapsize*1024*2"|bc`||err "calculate swapsize in blocks"
echo "end1 is $end1, swapsize is $swapsizeb blocks"
#create fist slice freebsd-zfs
gpart add -i 1 -b 0 -s $end1 -t freebsd-zfs $slice || err "create slice freebsd-zfs"
#create second slice freebsd-swap
gpart add -i 2 -b $end1 -s $swapsizeb -t freebsd-swap $slice ||err "create slice freebsd-swap"
#usualy /cdrom mount in /mnt2 in FixIT mode
kldload /mnt2/boot/kernel/opensolaris.ko >/dev/null
kldload /mnt2/boot/kernel/zfs.ko >/dev/null
#creating ZFS pool and set bootable
mkdir /boot/zfs
zpool create zroot /dev/${slice}a
zpool set bootfs=zroot zroot
gpart bootcode -b /mnt2/boot/boot0 $diskdrive
#Export zroot, before installing boot code
zpool export zroot
#unprotect disks
sysctl kern.geom.debugflags=0x10
dd if=/mnt2/boot/zfsboot of=/dev/$slice count=1
dd if=/mnt2/boot/zfsboot of=/dev/${slice}a skip=1 seek=1024
zpool import zroot
#Creating ZFS layout
#The fletcher4 algorithm should be more robust than the fletcher2 algorithm.
zfs set checksum=fletcher4 zroot
zfs create -o compression=on -o exec=on -o setuid=off zroot/tmp
chmod 1777 /zroot/tmp
zfs create zroot/usr
zfs create zroot/usr/home
cd /zroot ; ln -s /usr/home home
zfs create -o compression=lzjb -o setuid=off zroot/usr/ports
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/distfiles
zfs create -o compression=off -o exec=off -o setuid=off zroot/usr/ports/packages
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/usr/src
zfs create zroot/var
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/crash
zfs create -o exec=off -o setuid=off zroot/var/db
zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/db/pkg
zfs create -o exec=off -o setuid=off zroot/var/empty
zfs create -o compression=lzjb -o exec=off -o setuid=off zroot/var/log
zfs create -o compression=gzip -o exec=off -o setuid=off zroot/var/mail
zfs create -o exec=off -o setuid=off zroot/var/run
zfs create -o compression=lzjb -o exec=on -o setuid=off zroot/var/tmp
chmod 1777 /zroot/var/tmp
# cd /dist/8.0-*
cd /mnt2/8.0-RELEASE/
DESTDIR=/zroot
export DESTDIR=/zroot
for dir in base catpages dict doc games info manpages; \
# do (cd $dir ; ./install.sh) ; \
do (cd $dir ; cat ${dir}.?? | tar --unlink -xpzf - -C ${DESTDIR} ) ; \
done
# There is system halted -- it's very strange, to do investigate it.
#echo extracting ports;
#tar --unlink -xpzf ports/ports.tgz -C ${DESTDIR}/usr ;
#
echo installing source code and kernel
cd src ; ./install.sh all
cd ../kernels ; ./install.sh generic
cd /zroot/boot ; cp -Rlp GENERIC/* /zroot/boot/kernel/
#zfs set readonly=on zroot/var/empty
echo create boot environment
echo 'zfs_enable="YES"' >> /zroot/etc/rc.conf
echo 'hostname="beastie.mydomain.local"'>> /zroot/etc/rc.conf
echo 'ifconfig_re0="DHCP"' >> /zroot/etc/rc.conf
echo 'zfs_load="YES"' >> /zroot/boot/loader.conf
echo 'vfs.root.mountfrom="zfs:zroot"' >> /zroot/boot/loader.conf
echo 'LOADER_ZFS_SUPPORT=YES' > /zroot/etc/src.conf
cat >/zroot/mkd.sh <
make depend >> /var/log/make.log
make >> /var/log/make.log
cd i386/loader
make install >> /var/log/make.log
umount /dev
EOF
chmod +x /zroot/mkd.sh
echo making ZFS loader
chroot /zroot /mkd.sh
cp /boot/zfs/zpool.cache /zroot/boot/zfs/zpool.cache
echo Create /etc/fstab
cat << EOF > /zroot/etc/fstab
# Device Mountpoint FStype Options Dump Pass#
/dev/${slice}b none swap sw 0 0
EOF
export LD_LIBRARY_PATH=/mnt2/lib
echo Unmount all zfs filesystems
zfs unmount -a -f
echo Change mount points for zroot pool
zfs set mountpoint=legacy zroot
zfs set mountpoint=/tmp zroot/tmp
zfs set mountpoint=/usr zroot/usr
zfs set mountpoint=/var zroot/var
echo "Exit Fixit mode, and then sysinstall. "
echo "Remove the FreeBSD install DVD/Memstick and the system will boot using the ZFS root."
#--------------------------------------------------------------------------------------------
здесь можно посмотреть все листы, где засветился желаемый почтовик.
http://www.kloth.net/services/dnsbl.php
зайти в редактор grub’а на старте кнопкой «e». дописать single в конце самой длинной строчки. нажать «enter». нажать «b». машина загрузится в синглюзермоде.
термины:
клиент — тот хост, откуда мы подключаемся.
сервер — тот хост, куда мы подключаемся.
ключи генерятся исключительно на клиенте. командой ssh-keygen (без всяких ключей). кладется оно автоматически в ~/.ssh в виде keyname (приватный ключ — никому не отдавать) и keyname.pub — вот этот надо катнуть и вывод ката прописать в файле ~/.ssh/authorized_keys на сервере. все, теперь с клиента на сервер мы можем подключится без пароля.
быстрая очистка очереди, глобальная:
exipick -i | xargs exim -Mrm
быстрая очистка очереди по полю адреса:
mailq | grep w13924@he5.hoster.ru | awk '{print $3}' | xargs exim -Mrm
провел пару тестов на скорость сборки мира во freebsd. исходные условия:
freebsd 8.2 stable amd64 на zfs
исходники свежие (сегодняшние)
перед каждой сборкой осуществлялось:
[root@sites /usr/src]# make clean
[root@sites /usr/src]#rm -rf /usr/obj/*
переменными являются только параметр make -j и тип файловой системы в /usr/obj
итак, стандартная сборка:
[root@sites /usr/src]#make buildworld
>>> World build started on Tue May 17 10:07:44 MSD 2011
>>> World build completed on Tue May 17 11:17:27 MSD 2011
время сборки: 1 час 9 минут 43 секунды
сборка с j30 в тех же условиях:
[root@sites /usr/src]# make -j30 buildworld
>>> World build started on Tue May 17 11:19:39 MSD 2011
>>> World build completed on Tue May 17 11:41:08 MSD 2011
время сборки: 0 часов 21 минута 29 секунд
сборка с 5Гб ram-диском примонтированном в /usr/obj стандартная:
[root@sites /usr/src]# make buildworld
>>> World build started on Tue May 17 11:45:40 MSD 2011
>>> World build completed on Tue May 17 12:54:24 MSD 2011
время сборки: 1 час 8 минут 44 секунды
и тоже самое, но с j30:
[root@sites /usr/src]# make -j30 buildworld
>>> World build started on Tue May 17 13:59:36 MSD 2011
>>> World build completed on Tue May 17 14:20:50 MSD 2011
время сборки: 0 часов 21 минута 14 секунд.
вывод: на скорость сборки существенно (более чем в 3 раза) влияет параметр -j30, и практически не влияет тип файловой системы в каталоге /usr/obj
строчка в скрипте, которая не позволяет отображать данные для sas/scsi винтов:
142: @drives = grep /^ad[0-9]+$/, readdir DEV;
правится регексп:
142: @drives = grep /^da[0-9]+$/, readdir DEV;
и все начинает работать.