среда, июня 13, 2012

Mount additional disk to VirtualBox image (centos 6)

  1. shut down you virtual machine
  2. open VirtualBox Manager
    • choose you machine
    • click Settings->Storage->SATA Contoller->icon Add Hard Disk
    • click "Create new disk"
    • choose format VMDK (Virtual Machine Disk) for example -> next
    • choose Dynamically allocated for example -> next
    • enter name, and choose size
    • click Create
    • click Ok
  3. run virtual machine
  4. > sudo fdisk -l

    Disk /dev/sda: 5475 MB, 5475663872 bytes
    4 heads, 32 sectors/track, 83552 cylinders
    Units = cylinders of 128 * 512 = 65536 bytes

       Device Boot      Start         End      Blocks   Id  System
    /dev/sda1               1       78125     4999984   83  Linux
    /dev/sda2           78126       79681       99584   83  Linux

    Disk /dev/sdb: 107.3 GB, 107374182400 bytes
    255 heads, 63 sectors/track, 13054 cylinders
    Units = cylinders of 16065 * 512 = 8225280 bytes

    Disk /dev/sdb doesn't contain a valid partition table
    • I added 100Gb disk that got name /dev/sdb
    • "Disk /dev/sdb doesn't contain a valid partition table" mean that you need to format this disk first
      • yum install gparted
      • run gparted (if you use graphical or see the manual)
      • choose you disk in right top corner dropdown
      • Device -> Create Partition Table -> choose ms-dos -> apply
      • right click on disk bar -> New -> +Add
      • right click on disk bar -> Format to.. -> choose ext3

  5. > mkdir /mnt/mydisk
  6. > mount -t ext3 /dev/sdb1 /mnt/mydisk
  7. > cd /mnt/mydisk
  8. > df 
  9. to mount automatically on boot, add disk to /etc/fstab my /etc/fstb for example, i added last line
    • LABEL=79d3d2d4  / ext4    defaults,noatime 0 0
      LABEL=e21a3e10  /boot ext3    defaults,noatime 0 0
      devpts     /dev/pts  devpts  gid=5,mode=620   0 0
      tmpfs      /dev/shm  tmpfs   defaults         0 0
      proc       /proc     proc    defaults         0 0
      sysfs      /sys      sysfs   defaults         0 0
      /dev/sdb1   /mnt/mydisk   ext3  defaults      0 0
  10. DONE

среда, мая 02, 2012

ERROR 1005 (HY000): Can't create table 'dbname.tablename' (errno: 121)

При попытке создать таблицу выдает ошибку:

 ERROR 1005 (HY000): Can't create table 'dbname.tablename' (errno: 121)

Имена foreign keys совпадали с именами foreign keys из другой таблицы. Переименовал все заработало.

среда, апреля 25, 2012

mysqld: unrecognized service


Centos 6 установил Percona server
yum install Percona-Server-server-55.x86_64

все поставилось
пытаюсь запустить через сервис, выкидывает ошибку
service mysqld start
mysqld: unrecognized service

в итоге скопировал /etc/rc.d/init.d/mysqld с работающего сервера с mysql

через неделю ставил слэйв и опять тоже самое, совсем забыл про то что было на прошлой неделе. в итоге через двадцать минут наткнулся на /etc/rc.d/init.d/mysql для запуска перконы
вот что значит сила привычки

service mysql start
MySQL: Starting MySQL….. ERROR! The server quit without updating PID file

в логе написано проверить что ничего не бежит на 3306
нашел mysqld, убил
все равно не запускается

после нескольких попыток 
service mysql start
Starting MySQL (Percona Server) SUCCESS!

что сделал не понял но заработало :)

среда, апреля 11, 2012

sphinxql: syntax error, unexpected IDENT, expecting CONST_INT or CONST_FLOAT or '-' near 'distance'

при попытке поиска со сравненим дистанции в индексе
SELECT id, weight() as real_weight, timestamp_created, GEODIST(0.55078861166627,0.59535898534089,lat_radians,long_radians) as distance FROM rt_matchWHERE distance <=115000.00 and max_distance<distance;
получаю ошибку:
sphinxql: syntax error, unexpected IDENT, expecting CONST_INT or CONST_FLOAT or '-' near 'distance'
в индексе таблица вида:
index rt_match { type = rt path = /var/lib/sphinx/rt_match rt_attr_timestamp = timestamp_created .... rt_attr_float = lat_radians rt_attr_float = long_radians rt_attr_float = max_distance .... docinfo = extern morphology = none min_word_len = 1 min_infix_len = 2 infix_fields = main_title html_strip = 1 charset_type = utf-8 enable_star = 1 rt_mem_limit = 256M }
кругом один флоат проблем недолжно быть попробовал другой вариант
SELECT id, weight() as real_weight, timestamp_created, GEODIST(0.55078861166627,0.59535898534089,lat_radians,long_radians) as distance FROM rt_user_match WHERE distance <=115000.00 and max_distance-distance&rt;0
получил ошибку:
sphinxql: syntax error, unexpected '-', expecting BETWEEN (or 8 other tokens) near '-distance&rt;0'
после снизошло озарение что sphinx не хочет высчитывать значение в where вынес вычисление в select
SELECT id, weight() as real_weight, timestamp_created, GEODIST(0.55078861166627,0.59535898534089,lat_radians,long_radians) as distance, max_distance-distance as hu FROM rt_user_match WHERE distance <=115000.00 and hu&rt;0.00;
снизошла благодать:
+------+-------------+-------------------+---------------+---------------+ | id | real_weight | timestamp_created | distance | hu | +------+-------------+-------------------+---------------+---------------+ | 2097 | 1 | 1334076081 | 101040.648438 | 386959.343750 | | 2103 | 1 | 1334076082 | 48350.027344 | 155649.968750 | | 2104 | 1 | 1334076082 | 92743.218750 | 334256.781250 | | 2106 | 1 | 1334076083 | 63040.796875 | 223959.203125 | +------+-------------+-------------------+---------------+---------------+

среда, марта 07, 2012

Подключение к SphinxQL, sphinx.conf с поддержкой иврита

гребаны SphinxQL оказвается чтоб подключится к нему из комманд лайн нужно указать тип соединения:
mysql --port=9306 --protocol=tcp

ну и для примера простенький sphinx.conf с поддержкой иврита

#
# Minimal Sphinx configuration sample (clean, simple, functional)
#

source job_title_source
{
        type                    = mysql

        sql_host                = localhost
        sql_user                = sphinx
        sql_pass                = PASS
        sql_db                  = DBNAME
        sql_port                = 3306  # optional, default is 3306

        sql_query   = \
                SELECT id, title, UNIX_TIMESTAMP(datetime_created) as timestamp_created, access_id, lang_id \
                FROM job_title \

        sql_attr_uint = lang_id
        sql_attr_timestamp  = timestamp_created
        sql_field_string = access_id

        sql_query_info          = SELECT * FROM job_title WHERE id=$id
}


index job_title_index
{
        source                  = job_title_source
        path                    = /var/lib/sphinx/job_title_index
        docinfo                 = extern
        charset_type = utf-8

        charset_table   = 0..9, A..Z->a..z, _-> , a..z, \
         U+FB1D->U+05D9, U+FB1F->U+05F2, U+FB20->U+05E2, U+FB21->U+05D0, U+FB22->U+05D3, U+FB23->U+05D4, U+FB24->U+05DB, U+FB25->U+05DC, U+FB26->U+05DD, U+FB27->U+05E8, U+FB28->U+05EA, U+FB2A->U+05E9, U+FB2B->U+05E9, U+FB2C->U+05E9, U+FB2D->U+05E9, U+FB2E->U+05D0, U+FB2F->U+05D0, U+FB30->U+05D0, U+FB31->U+05D1, U+FB32->U+05D2, U+FB33->U+05D3, U+FB34->U+05D4, U+FB35->U+05D5, U+FB36->U+05D6, U+FB38->U+05D8, U+FB39->U+05D9, U+FB3A->U+05DA, U+FB3B->U+05DB, U+FB3C->U+05DC, U+FB3E->U+05DE, U+FB40->U+05E0, U+FB41->U+05E1, U+FB43->U+05E3, U+FB44->U+05E4, U+FB46->U+05E6, U+FB47->U+05E7, U+FB48->U+05E8, U+FB49->U+05E9, U+FB4A->U+05EA, U+FB4B->U+05D5, U+FB4C->U+05D1, U+FB4D->U+05DB, U+FB4E->U+05E4, U+FB4F->U+05D0, U+05D0..U+05F2

 # STRIP HTML TAGS
        html_strip = 1

}


indexer
{
        mem_limit               = 128M
}


searchd
{
        listen                  = localhost:9312
        listen                  = localhost:9306:mysql41
        log                     = /var/log/sphinx/searchd.log
        query_log               = /var/log/sphinx/query.log
        read_timeout            = 5
        max_children            = 30
        pid_file                = /var/run/sphinx/searchd.pid
        max_matches             = 10000
        seamless_rotate         = 1
        preopen_indexes         = 1
        unlink_old              = 1
        workers                 = threads # for RT to work
  compat_sphinxql_magics = 0 # the future is now
}

понедельник, марта 05, 2012

Zend Route in ini file

конфигурация роутинга хранится в routes.ini
один из роутов ведет в редактирование джоба

job_edit.type = "Zend_Controller_Router_Route_Regex"
job_edit.route = "job/(\d+)/edit"
job_edit.defaults.module = "companies"
job_edit.defaults.controller = "job"
job_edit.defaults.action = "edit"
job_edit.map.1 = "jobId"

задача создать правильную ссылку используя
$this->url(array('jobId' => $job['id']),'job_edit', true);

получаем ошибку
An error occurred
Application error
Exception information:
Message: Cannot assemble. Reversed route is not specified.

надо добавить строчку
job_edit.reverse="job/%d/edit"

вторник, декабря 13, 2011

Соединение с облаком:

curl -D - -H "X-Auth-User: RackspaceCloudUsername" -H "X-Auth-Key: RackspaceApiKey" https://auth.api.rackspacecloud.com/v1.0
Получаем в ответ:
HTTP/1.1 204 No Content Date: Wed, 30 Mar 2011 04:15:28 GMT Server: Apache/2.2.3 (Mosso Engineering) 
X-Storage-Url: https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_6f597497-4986-44ea-9081-1234567890 
X-Storage-Token: 63ea9670-c80f-402d-9657-1234567890 
X-CDN-Management-Url: https://cdn1.clouddrive.com/v1/MossoCloudFS_6f597497-4986-44ea-9081-68b8ee123456 
X-Auth-Token: 63ea9670-c80f-402d-9657-c59bdb123456 
X-Server-Management-Url: https://servers.api.rackspacecloud.com/v1.0/123456
Content-Length: 0 Connection: close Content-Type: application/octet-stream
Нам потребуется X-Storage-URL (место где находятся файлы) и X-Storage-Token.
curl -H "X-Storage-Token: aaa89968-977b-4540-ac65-52037abde38d" https://storage101.ord1.clouddrive.com/v1/MossoCloudFS_8e0c0a34-d042-465d-a2aa-313dc3bb1b3a
запускаем получаем список контейнеров
curl -H "X-Storage-Token: 63ea9670-c80f-402d-9657-1234567890" https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_6f597497-4986-44ea-9081-1234567890/cloudservers
Добавляем /cloudservers в конце урла.
curl -H "X-Storage-Token: 63ea9670-c80f-402d-9657-1234567890" https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_6f597497-4986-44ea-9081-1234567890/cloudservers
Получаем список файлов в контейнере.
20110207installminimum_20110720_1314_cloudserver20106024.tar.gz.0 20110207installminimum_20110720_1354_cloudserver20106024.yml 20110721withtempsite_20110721_1816_cloudserver20106024.tar.gz.0 20110721withtempsite_20110721_1816_cloudserver20106024.yml 20110810_20110810_1250_cloudserver20106024.tar.gz.0 20110810_20110810_1250_cloudserver20106024.yml
копируем xtrabackup dump на облако
curl -X PUT -T db.20111128.tar.gz -D - \ 
-H "X-Auth-Token: 63ea9670-c80f-402d-9657-1234567890" \ 
-H "X-Object-Meta-Screenie: mysqldump 2011 10" \ 
https://storage101.dfw1.clouddrive.com/v1/MossoCloudFS_6f597497-4986-44ea-9081-1234567890/xtrabackup/201111/db.20111128.tar.gz

пятница, ноября 11, 2011

Гребанный IE и ошибка facebook connect

подключил  facebook connect
гребанный IE орет что есть ошибка:
SCRIPT70: Permission denied
all.js, line 22 character 4321


и подсвечивал в дебаггере строчку:
b.fbCallID=a.id;

в методе:
setLoadedNode:function(a,b){FB.UIServer._loadedNodes[a.id]=b;if(a.params)b.fbCallID=a.id;} 

решение нашел здесь:
http://stackoverflow.com/questions/7280007/permission-denied-error-in-all-js

нечитая добавил эту строчку:

FB.UIServer.setActiveNode = function(a,b){FB.UIServer._active[a.id]=b;} // IE hack to correct FB bug

непомогло

и только потом заметил что ошибка в другом методе, добавил:

FB.UIServer.setLoadedNode = function (a,b){FB.UIServer._loadedNodes[a.id] = b;} // IE hack to correct FB bug

все заработало, боюсь трогать :)

полный код:
  window.fbAsyncInit = function() {
    FB.init({
      appId      : 'APP_ID', // App ID
      //channelURL : '//WWW.YOUR_DOMAIN.COM/channel.html', // Channel File
      status     : true, // check login status
      cookie     : true, // enable cookies to allow the server to access the session
      oauth      : true, // enable OAuth 2.0
      xfbml      : true  // parse XFBML
    });
    FB.UIServer.setActiveNode = function(a,b){FB.UIServer._active[a.id]=b;} // IE hack to correct FB bug
    FB.UIServer.setLoadedNode = function (a,b){FB.UIServer._loadedNodes[a.id] = b;} // IE hack to correct FB bug
    // Additional initialization code here
  };

четверг, октября 27, 2011

Apache error: "Request exceeded the limit of 10 internal redirects"

давно надоела такая ошибка:
[Thu Oct 27 14:04:49 2011] [error] [client 82.81.18.70] Request exceeded the limit of 10 internal redirects due to probable configuration error. Use 'LimitInternalRecursion' to increase the limit if necessary. Use 'LogLevel debug' to get a backtrace.
просто какая то свинка пыталась взять .htpasswd , вынес его из директории сайта и поправил права. все ок

пятница, октября 14, 2011

בזק בינלאומי - חרה של חברה

אל תתחברו לאינטרנט של בזק בינלאומי - חרה של חברה
. לפני שנה הם בלי לשאול חברו אותי לפרמיום שלהם
ושלמתי כל חודש 30 ש"ח נוספים בלי לדעת את זה
וגם לא רוצים לבטל כי אומרים שיש לי התחייבות לשנתיים.
בסוף נובמבר אני מתנתק לא תראו יותר שקל ממני שקל.

вторник, октября 11, 2011

child pid ##### exit signal Segmentation fault (11)

[Tue Oct 11 12:31:13 2011] [notice] child pid 13512 exit signal Segmentation fault (11)
[Tue Oct 11 12:31:40 2011] [notice] child pid 13518 exit signal Segmentation fault (11)
apache выкидывает такие ошибки в основном error_log

решение: один из файлов который инклудится php скриптом имеет неправильные права.
поправь и порядок

четверг, января 06, 2011

гребаный Selinux

с утра отключил один из слэйвов чтоб проверить xtrabackup и накатить точную версию базки, после ристарта получаю ошибку:

110106 12:37:36 mysqld_safe Starting mysqld daemon with databases from /var/lib/mysql
110106 12:37:37 [Note] Plugin 'FEDERATED' is disabled.
/usr/libexec/mysqld: Can't find file: './mysql/plugin.frm' (errno: 13)
110106 12:37:37 [ERROR] Can't open the mysql.plugin table. Please run mysql_upgrade to create it.
InnoDB: The InnoDB memory heap is disabled
InnoDB: Mutexes and rw_locks use GCC atomic builtins
InnoDB: Compressed tables use zlib 1.2.3
110106 12:37:37 InnoDB: Initializing buffer pool, size = 9.0G
110106 12:37:38 InnoDB: Completed initialization of buffer pool
110106 12:37:38 InnoDB: Operating system error number 13 in a file operation.
InnoDB: The error means mysqld does not have the access rights to
InnoDB: the directory.
InnoDB: File name /var/lib/mysql/ibdata1
InnoDB: File operation call: 'open'.
InnoDB: Cannot continue operation.
110106 12:37:38 mysqld_safe mysqld from pid file /var/run/mysqld/mysqld.pid ended
давай перезаливать и перенастраивать, одно и тоже.
права на папку в порядке.
переустановил пару раз mysql, работает.
накатываю бэкап ошибка
без 15 восемь вспомнил что видел лог в munin на selinux на одном из серверов
точно он скотино, отрубил все поднялось

пятница, ноября 26, 2010

RewriteEngine on? но все равно mod_rewrite не работает и выдает 404

блядский AllowOverride All
постоянно забываю включать его в httpd.conf на свежих серверах

воскресенье, февраля 28, 2010

SEAGATE Barracuda 7200.11 прошивка SD15

ура ура seagate открыли мой залоченый СС диск (самому так и неудалось)

пришло месяц назад письмо из магазина (ksp.co.il) что в дисках этой серии обнаружены проблемы прошивки (прошел ровно год) просили принести на перепрошивку
позвонил сказал что диск уже залочен, сказали что отошлют в сигэйт
две недели назад отнес в пятницу вернули, работающим ура ура фото спасены

после бэкапа, на неделе отнесу обратно, должны выдать новый взамен

среда, октября 28, 2009

linux хуинукс

ставил libssh2
получал ошибку на ./configure

try --with-libssl-prefix=PATH or --with-libgcrypt-prefix=PATH

поставил libssl и libgcrypt все равно ошибка

этой ссуке надо было yum install openssl-devel.x86_64 еще сделать
заипало

среда, мая 20, 2009

install munin plugins

установил apache_accesses по мануалу, сделал ристарт картинка появилась но не меняется, оказывается надо было поправить права в /var/lib/munin/имя_сайта они автоматом рутовыми были.

apache_accesses installed , but picture doesn't refresh
i needed to change owners in /var/lib/munin/site_name for *.rrd files to munin:munin

воскресенье, мая 03, 2009

=3D

при использовании какой то библиотеки для mail вдруг глюкнули ссылки (так как не работал sendmail проверял echo, var_dump), вставляется символы 3D, дык это фича квотинга(эскейпинга) символ "=" меняется на три "=3D"

http://en.wikipedia.org/wiki/Quoted-printable

вывод: не выебываться и проверять на рабочей конфигурации

понедельник, апреля 13, 2009

Codeigniter 1.7.2: баги и минусы

1. Pagination - мануал тупо не совпадает с тем как он работает, проблема в кол-ве элементов на странице, приходится указывать что только один
2. Form_validation - выдает варнинг если в строке ошибки $this->form_validation->set_message() оказывается "%" он обрабатывает его sprintf и не экранирует
3. псевдо ООП - библиотеки содержат классы, но балин синглтона не получитсо, движок автоматически инициализирует класс и орет если конструктор протектед
4. SQL_CALC_FOUND_ROWS не всунешь в active records

1. php 4
2. не хватает библиотек

воскресенье, апреля 12, 2009

GoDaddy: Nameserver not registered.


При управлении доменными именами, зарегистрированными на GoDaddy, возникла проблема, которая убила у меня 2 часа полезного времени.
(вот только не надо мне рассказывать что GoDaddy это не труЪ - сам знаю)

При попытке назначить определенному домену собственные (custom) nameservers (например ns1.myzone.com и ns2.myzone.com), получаем ошибку “Nameserver not registered.”
Аналогичная ситуация наблюдается если пытаемся создать профиль с указанием custom nameservers.

Пользовательская справка GoDaddy по поводу решения этой проблемы скромно умалчивает (хотя раньше лично мне всегда помогала).

Решение оказалось немного нетривиальным:

Необходимо в настроках домена myzone.com кроме того, что создать DNS-записи для субдоменов ns1 и ns2, ещё и добавить аналогичные записи в “Host Summary” (прямоугольный блок внизу слева, на странице с информацией о домене).
В первом поле ввода указать ns1, а в поле “Host IP 1” - IP-адрес, куда должен указывать NS.
Аналогично и для записи ns2.

И только после этого, GoDaddy позволит указывать ns1.myzone.com и ns2.myzone.com в качестве Custom Nameservers для своих доменов и использовать их в профайлах.

спасибо автору: Vadim Voituk

пятница, апреля 10, 2009

EPEL centos/fedore core

пытался ставить git через yum
>>yum install git

получаю в ответ:

Setting up Install Process
Parsing package install arguments
No package git available.
Nothing to do

типа не находится в репозитории
начал ставить через make && make install
не хватало других пэкаджей, оказалось надо установить EPEL (Extra Packages for Enterprise Linux) с дополнительными пакетами
>>rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm

а дальше как по маслу

>>yum install git

правда версия в репозитории далеко не последняя :)