MySQL 5 to MySQL 4.1 downgrade on Plesk
Запись создана 26 августа, 2010
Для сборки mysql на потребуется установить:
[cc lang=»bash»]
yum install gcc ncurses-devel gcc-c++
[/cc]
берем тарбол mysql-4.1.22, распаковываем, собираем и ставим в /opt/mysql-4.1.22 дефолтная кодировка mysql будет cp1251
[cc lang=»bash»]
wget https://itblog.su/downloads/mysql-4.1.22.tar.gz
tar zxf mysql-4.1.22.tar.gz
cd mysql-4.1.22
./configure —with-charset=cp1251 —with-collation=cp1251_general_ci \
—with-extra-charset=all —prefix=/opt/mysql-4.1.22 \
—without-docs —without-man —without-bench
make && make install
[/cc]
теперь остановим mysql5 установленный панелью Plesk и заменим инитскрипт
[cc lang=»bash»]
/etc/init.d/mysqld stop
gzip /etc/init.d/mysqld
cp /opt/mysql-4.1.22/share/mysql/mysql.server /etc/init.d/mysqld
/etc/init.d/mysqld start
[/cc]
После запуска mysql 4.1 проверим работоспособность mysql
[cc lang=»bash»]
mysql -uadmin -p`cat /etc/psa/.psa.shadow`
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 4.1.22
[/cc]
В панели плеск root не используется, суперпользователь имеет логин admin а пароль совпадает с паролем от входа в панель, если вы его забыли или не знаете, подсмотреть его можно в файле /etc/psa/.psa.shadow
» Запись из раздела CentOS Linux, MySQL | Комментировать
Monitoring Adaptec RAID controller under Ubuntu
Запись создана 26 июля, 2010
Для мониторинга RAID массива построенного на контроллере Adaptec крайне удобно использовать утилиту arcconf.
нативно адаптек дает пакет для RHEL/SCO/FreeBSD/Windows .deb пакетов в этом списке нет. Понадобилось поставить на Ubuntu 10.04, ставить будем так:
[cc lang=»bash»]
wget -c -q http://download.adaptec.com/raid/storage_manager/asm_linux_x86_v6_40_18530.rpm
sudo alien —scripts asm_linux_x86_v6_40_18530.rpm
sudo dpkg -i storman_6.40-18531_i386.deb
sudo ln -s /usr/StorMan/libstdc++.so.5 /usr/lib
sudo /usr/StorMan/arcconf GETCONFIG 1
Controllers found: 1
———————————————————————-
Controller information
———————————————————————-
Controller Status : Optimal
Channel description : SAS/SATA
Controller Model : Adaptec 3405
Controller Serial Number : 7C2110BD45E
Physical Slot : 3
Temperature : 55 C/ 131 F (Normal)
Installed memory : 128 MB
Copyback : Disabled
Background consistency check : Enabled
Automatic Failover : Enabled
Stayawake period : Disabled
Spinup limit internal drives : 0
Spinup limit external drives : 0
Defunct disk drive count : 0
Logical devices/Failed/Degraded : 1/0/0
[/cc]
» Запись из раздела Adaptec, Ubuntu | Комментировать
installing CentOS from USB pen drive
Запись создана 8 июля, 2010
Понадобилось у становить CentOS на машину которая не умеет загружаться по сети и не оказалось под рукой CD-ROM. Создаем загрузочную флешку для установки CentOS
вставляем флешку в usb порт, появляется новое устройство /dev/sdd теперь запустим fdisk
fdisk /dev/sdd
удалим все разделы создадим:
/dev/sdd1 размером 15 MB
/dev/sdd2 всё остальное пространство
/dev/sdd1 нужно сделть Bootable, т.е. загрузочным и переходим к установке:
wget http://mirror.yandex.ru/centos/5.4/os/i386/images/diskboot.img
dd if=diskboot.img of=/dev/sdd1
если размер USB диска позволяет, то форматируем /dev/sdd2 в ext3
mkfs.ext3 /dev/sdd2
и копируем в этот раздел содержимое установочного диска.
теперь можно начать установку с USB диска и выбрать установка с диска указав второй раздел или указать локальный http репозиторий для установки
» Запись из раздела CentOS Linux | Комментировать
HP iLo self signed sertificate
Запись создана 21 апреля, 2010
Есть у меня пара HP ProLiant DL360-ых, которые оснащены iLO (это ip-kvm, power management и многое другое через вебморду). так вот, и у того и у другого оказался сертификат с одним и тем же серийником. как следствие firefox не давал зайти.
Покупать ssl сертификаты для iLO на мой взгляд глупо, по этому решено было сгенерить self signed
[cc lang=»bash»]
openssl genrsa -out ca.key 1024
openssl req -new -x509 -days 365 -key ca.key -out ca.pem -subj /CN=ilo.server.com/O=Company/C=RU
[/cc]
теперь из Administration -> Certificate Administration делаем «Generate a certificate request» и полученный ключ Certificate Signing Request кладем в ilo-server1.csr ну и подписываем его:
[cc lang=»bash»]
openssl x509 -req -days 365 -in ilo-server1.csr -CA ca.pem -CAkey ca.key -set_serial 01 -out ilo-server1.crt
[/cc]
для второго сервера из того же Administration -> Certificate Administration делаем «Generate a certificate request» и полученный ключ Certificate Signing Request кладем в ilo-server2.csr и подписываем его тем же ключом но с другим серийником:
[cc lang=»bash»]
openssl x509 -req -days 365 -in ilo-server2.csr -CA ca.pem -CAkey ca.key -set_serial 02 -out ilo-server2.crt
[/cc]
полученные ilo-server1.crt и ilo-server2.crt вставляем в форму на следующем шаге Certificate Administration, а именно на Step 3. Import Certificate.
» Запись из раздела Несортированное | 3 комментария
php memcache and memcached on CentOS 5 and up
Запись создана 1 марта, 2010
The first thing we should do is install rpmforge repo if still not, you can use this HOWTO.
the next step is installing memcached and libmemcache
[cc lang=»bash»]yum install libmemcache memcached -y[/cc]
starting memcached:
[cc lang=»bash»]memcached -d -m 256 -l 127.0.0.1 -p 11211 -u nobody[/cc]
you can add a line above to /etc/rc.local to start memcached daemon at system startup
now we will install memcache php extension
[cc lang=»bash»]
wget http://pecl.php.net/get/memcache-2.1.2.tgz
tar -xvf memcache-2.1.2.tgz && cd memcache-2.1.2
phpize && ./configure —enable-memcache && make && make install
echo «extension=memcache.so» >> `php -i | grep «Loaded Configuration File» | awk ‘{print $5}’`
[/cc]
and restart apache: /etc/init.d/httpd restart
and now the task is done. enjoy it!
PS: sorry for terrible english.
» Запись из раздела CentOS Linux, PHP | 3 комментария
отобразить конфиг без комментариев
Запись создана 21 декабря, 2009
Иногда нужно посмотреть конфиг не перегружая внимание чтением комментариев, я это делаю так:
[cc lang=»bash»]
grep -v -E «^;|^$» /usr/local/lib/php.ini
[/cc]
или так:
[cc lang=»bash»]
grep -v -E «#|^$» /usr/local/apache2/conf/httpd.conf
[/cc]
Хочу уточнить относительно отличий ^# и #. Первое это все строки начинающиеся с #, второе все строки содержащие #.
» Запись из раздела Несортированное | 3 комментария
перенаправление stdout и stderr
Запись создана 21 декабря, 2009
Коротко и ясно расскажу о пере направлении stdout и stderr. stdout это нормальный вывод, stderr это ошибки.
[root@shakirov ~]# ls /opt/ /blah ls: /blah: Нет такого файла или каталога /opt/: firebird iso lost+found
красным выделен stderr, а синим stdout. По умолчанию в output отправляется и stdout и stderr.
перенаправления stdout в /tmp/stdout используйте конструкцию:
[root@shakirov ~]# ls /opt/ /blah > /tmp/stdout
ls: /blah: Нет такого файла или каталога
для перенаправления stderr в /tmp/stderr используйте конструкцию:
[root@shakirov ~]# ls /opt/ /blah 2> /tmp/stdout
/opt/:
firebird iso lost+found
Для перенаправления sterr и stdout в файл /tmp/all используйте конструкцию:
[root@shakirov ~]# ls /opt/ /blah > /tmp/all 2>&1
Есть вариант когда stderr и stdout отправляются в output и в файл. Это удобно для отладки интерактивных скриптов. Делается это через tee.
[root@shakirov ~]# ls /opt/ /blah 2>&1 | tee /tmp/all ls: /blah: Нет такого файла или каталога /opt/: firebird iso lost+found
ну и пара практических вариантов, отправка stdout и stderr на электронную почту:
[cc lang=»bash»][root@shakirov ~]# ls /opt/ /blah 2>&1 | mail root@localhost[/cc]
скрытие сообщений об ошибках:
[cc lang=»bash»][root@shakirov ~]# ls /opt/ /blah 2> /dev/null[/cc]
» Запись из раздела Несортированное | 2 комментария
кодировка bitrix модуль Сотрудники
Запись создана 21 декабря, 2009
После переноса битрикса на новый сервер с php 5.2.12 в модуле «Сотрудники» и в «структура компании» всё перекосило. в первом случае это крякозябры вместо алфавитного указателя, во втром вообще весь html перекосило.
как выяснилось причиной является то что в php старше 5.2.8 директиву mbstring.func_overload нельзя задать из .htaccess простым php_value mbstring.func_overload 2
соответственно решением является задать её глобально для сервера в php.ini или в конфиге vhost-а через php_admin_value.
» Запись из раздела PHP | Комментировать
Tekram DC-395UW under CentOS
Запись создана 15 декабря, 2009
Из штатов приехала коробка с SCSI дисками для HP-шных серверов, соответственно возникла необходимость прочекать их все перед тем как везти в датацентр. В закромах нашелся древний контроллер Tekram DC-395UW, SCSI кабель 68-ми пиновый и заранее купленный переходник на LVD 80 pin. В биосе контроллера диски прекрасно видятся, но при попытке установить CentOS на диски воткнутые в контроллер, anaconda в упор не видит дисков.
CD/DVD привода под рукой не оказалось, а вынимать из другой машины было лень, т.ч. установку выполнял по сети, загрузив машину по pxe+tftp. На машине с поднятым апачем делаем:
[cc lang=»bash»]
rpm2cpio kernel-2.6.18-128.el5.i686.rpm| cpio -idmuv —no-absolute-filenames
find . | grep 395
cp ./lib/modules/2.6.18-128.el5/kernel/drivers/scsi/dc395x.ko /var/lib/www/
[/cc]
теперь начинаем установку системы на машине с контроллером. Если установка в text режиме, то на этапе когда диски не от дедектились (пустой список дисков) жмем Alt+F2 и переходим в консольку:
[cc lang=»bash»]
wget http://192.168.12.200/dc395x.ko
modprobe dc395x.ko
mknod /dev/sda
[/cc]
теперь Alt+f1 обратно к anaconda и жмем «добавить диск» или что-то в этом духе, будет предложено добавить iSCSI таргет, набиваем какой-нибудь левый ip и добавляем. iSCSI конечно не добавится, но анаконда перечитает список дисков и отобразит наш scsi диск. далее продолжаем установку в удобном нам виде.
Кстати первую часть можно выполнять на той же машине куда ставится система.
PS: контроллер гавно, но проверить диски он дал возможность.
» Запись из раздела CentOS Linux | Комментировать
OpenVZ: резервное копирование и клонирование контейнеров
Запись создана 20 октября, 2009
В последние несколько месяцев активно работаю с OpenVZ. Соответственно вопрос который возникает после того как система развернута, это резервное копирование.
Расскажу как реализовать его проще всего, на примере CentOS 5.3
[cc lang=»bash»]
[root@root ~]# yum install cstream perl-LockFile-Simple
[root@root ~]# rpm -Uvh http://www.proxmox.com/cms_proxmox/cms/upload/vzdump/vzdump-1.1-2.noarch.rpm
[root@root ~]# rpm -Uvh http://www.proxmox.com/cms_proxmox/cms/upload/vzdump/vzdump-1.2-4.noarch.rpm
[root@root ~]# vzdump —help
Unknown option: help
usage: /usr/sbin/vzdump OPTIONS [—all | VPSID]
—exclude VPSID exclude VPSID (assumes —all)
—exclude-path REGEX exclude certain files/directories
—stdexcludes exclude temorary files and logs
—compress compress dump file (gzip)
—dumpdir DIR store resulting files in DIR
—tmpdir DIR store temporary files in DIR
—mailto EMAIL send notification mail to EMAIL.
—quiet be quiet.
—stop stop/start VPS if running
—suspend suspend/resume VPS when running
—snapshot use LVM snapshot when running
—size MB LVM snapshot size
—node CID only run on pve cluster node CID
—lockwait MINUTES maximal time to wait for the global lock
—stopwait MINUTES maximal time to wait until a VM is stopped
—bwlimit KBPS limit I/O bandwidth; KBytes per second
—restore FILENAME restore FILENAME
[/cc]
Согласно хелпу был написан простой скриптик для резервного копирования.
[cc lang=»bash»]
[root@root ~]# cat /bin/backup.sh
#!/bin/bash
mkdir /vz/dump/`date «+%Y%m%d»`
/usr/sbin/vzdump —suspend —compress —exclude-path /tmp/ —all —mailto your@mail.com —dumpdir /vz/dump/`date «+%Y%m%d»`/
[/cc]
данный скрипт будет создавать в папке /vz/dump/ папку с текущей датой и в нее складывать дампы, пожатые в tgz, контейнеров. И слать уведомление на your@mail.com
скриптик этот нужно закинуть в крон, сам его допилить слегка для того чтобы убивались старые бакапы (man find).
для восстановления следует использовать vzdump с ключиком —restore
отсюда вытекает возможность клонировать контейнер.
[cc lang=»bash»]
vzdump —compress —suspend 110
vzdump —restore /vz/dump/vzdump-110.tgz 120
vzctl set 120 —hostname newhostname.com —save
vzctl set 120 —ipdel 192.168.0.110 —save
vzctl set 120 —ipadd 192.168.0.120 —save
vzctl start 120
[/cc]
в версии 1.2 восстановление делается так:
vzrestore /vz/vzdump-110.tgz 130
таким образом мы сделали копию контейнера 110 с VID 120, сменили ему ip и хостнейм. По тому же принципу накладываются новые ограничения.
возможные проблемы:
[cc lang=»bash»]
[root@server ~]# vzdump —compress —suspend —dumpdir /backup/ —tmpdir /backup/tmp/ 120
……………..
Nov 19 20:10:51 INFO: Error: No checkpointing support, unable to open /proc/cpt: No such file or directory
Nov 19 20:14:34 ERROR: Backup of VM 120 failed — command ‘/usr/sbin/vzctl chkpnt 120 —suspend’ failed with exit code 16
[/cc]
это лечится с помощью:
[cc lang=»bash»]modprobe vzcpt[/cc]
еще одна:
[cc lang=»bash»]
[root@vm1 ~]# vzdump —help
Can’t locate PVE/VZDump.pm in @INC (@INC contains: /usr/lib/perl5/site_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/site_perl/5.8.8 /usr/lib/perl5/site_perl/5.8.7 /usr/lib/perl5/site_perl/5.8.6 /usr/lib/perl5/site_perl/5.8.5 /usr/lib/perl5/site_perl /usr/lib/perl5/vendor_perl/5.8.8/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.7/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.6/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.5/i386-linux-thread-multi /usr/lib/perl5/vendor_perl/5.8.8 /usr/lib/perl5/vendor_perl/5.8.7 /usr/lib/perl5/vendor_perl/5.8.6 /usr/lib/perl5/vendor_perl/5.8.5 /usr/lib/perl5/vendor_perl /usr/lib/perl5/5.8.8/i386-linux-thread-multi /usr/lib/perl5/5.8.8 .) at /usr/sbin/vzdump line 27.
BEGIN failed—compilation aborted at /usr/sbin/vzdump line 27.
[/cc]
лечится так:
[cc lang=»bash»]
[root@vm1 ~]# cp -r /usr/share/perl5/PVE/ /usr/lib/perl5/5.8.8/
[/cc]
Если возникли вопросы или нужна помощь, буду рад помочь.
» Запись из раздела CentOS Linux, OpenVZ | 3 комментария