воскресенье, 12 декабря 2010 г.

Ошибки в WHM. error on Whostmgr.pm line 129

Следующие ошибки в WHM и cpanel.

undef error - Undefined subroutine &Whostmgr::Theme::find_file_path called at /usr/local/cpanel/Cpanel/Template/Plugin/Whostmgr.pm line 129.


[a fatal error or timeout occurred while processing this directive] [a fatal error or timeout occurred while processing this directive] [a fatal error or timeout occurred while processing this directive] [a fatal error or timeout occurred while processing this directive]undef error - Undefined subroutine &Whostmgr::Theme::find_file_path called at /usr/local/cpanel/Cpanel/Template/Plugin/Whostmgr.pm line 129.


В пользовательских аккаунтах cpanel неправильно работают некоторые пункты, напрример не отображаются базы данных. А также ошибки типа:

ошибка:
> Undefined subroutine &Cpanel::Branding::Lite::_get_contactinfodir called at /usr/local/cpanel/Cpanel/Contactus.pm line 159.
> Cpanel::Contactus::_get_contactus_info() called at /usr/local/cpanel/Cpanel/Contactus.pm line 152
> Cpanel::Contactus::api2_isenabled() called at(eval 82) line 1
> eval '$dataref = [Cpanel::Contactus::api2_isenabled(%{$rCFG})];' called at cpanel line 4218
> main::api2_exec('Contactus', 'isenabled', 'HASH(0xabdea30)', 'HASH(0x9de3ed4)') called at cpanel line 553
> main::real_cpexectag('') called at cpanel line 4021
> main::dotag_finished_headers('', 1) called at cpanel line 3867
> main::cpanel_parseblock('^J class="clearitmed"> > main::cpanel_parse('GLOB(0xabd2140)') called at cpanel line 2157
> main::doinclude('/usr/local/cpanel/base/frontend/x3/branding/stdfooter.html', 0, 1) called at /usr/local/cpanel/Cpanel/Branding.pm line 48
> Cpanel::Branding::Branding_include('stdfooter.html') called at (eval 79) line 1
> eval 'Cpanel::Branding::Branding_include(@{$argref});' called at cpanel line 949
> main::real_exectag('') called at cpanel line 4015
> main::dotag_finished_headers('', 1) called at cpanel line 3898
> main::cpanel_parseblock('^J> main::cpanel_parse('GLOB(0x9bbc2f0)') called at cpanel line 5335
> main::run_standard_mode() called at cpanel line 387


При запуске скрипта обновления cpanel скрипт зависает на одном и том же пункте - 

Updating FTP Server...Ftp Setup Script Version 6.1 .

RPM не отрабатывает правильно. Yum тоже не обновляется, ничего нельзя сделать.


Мучался, мучался обнаружил в списке процессов следующие:

|-29*[rpmq]

|-rpmup---rpmq

|-14*[sort]


Убиваю эти процессы, удаляю из /var/lib/rpm файлы типа  __db.000,  __db.001,   __db.002, __db.003

и делаю yum update.

После этого yum заработал.

Дальше чтобы привести систему в порядок делаю

/scripts/upcp --force



суббота, 11 декабря 2010 г.

EasyApache is currently running. Please wait for EasyApache to complete before

С веб-морды или консоли EasyApache не запущен, возможно осталась копия в процессах после предыдущего инстала или обновления софта.


/scripts/upcp -force - получаю эту ошибку.


Смотрим в процессах EasyApache

ps aux | grep -i EasyApache 

получаем PID процесса и киляем c -9.

Все, дальше все работает.

пятница, 10 декабря 2010 г.

disable tomcat for cpanel account

Для того, чтобы отключить tomcat для аккаунта cpanel нужно выполнить следующее.

Через WHM отключить tomcat для аккаунта cpanel нельзя.

Отключается tomcat через xml файл.

Идем в /usr/local/jakarta/apache-tomcat-5.5.25/conf/server.xml (версия может отличаться)

И удаляем тем раздел HOST для нужного домена от  раскрывающихся скобок до закрывающихся..


И рестартуем томкат 

# /scripts/restartsrv_tomcat


вторник, 7 декабря 2010 г.

Too many open files in system - VPS on OpenVZ

После переноса громоздкой ВПС и изминения ее конфига не стартуют скрипты.

Ошибка "Too many open files in system".

А также побочным эффектом применения нового конфига во время работы vps была подобная ошибка:

/usr/sbin/apache2: error while loading shared libraries: libkeyutils.so.1: cannot open shared object file: Error 23

Но это только касательно апача, на других приложениях не проверял.


Первым делом смотрим на лимиты, которые превышаем:

#cat /proc/user_beancounters

resource   held    maxheld    barrier    limit    failcnt

numfile   2288    2754          2048        2048   17499002


Лечим:

vzctl set VID --numfile "20480:20480" --save


четверг, 28 октября 2010 г.

No required driver detected for unity

No required driver detected for unity - ubuntu 10.10 on virtualbox.


Хотел посмотреть на Unity в 10.10, но при установке на virtualbox получаю ошибку:

No required driver detected for unity

Как оказалось, для работы unity нужна нормальная поддержка 3D, то-есть нужно установить нормальные драйвера на видеокарту.

После установки на реальное железо все установилось и заработало, чудно.

суббота, 14 августа 2010 г.

Маленькие проблемы cpanel

В разделе статистики awstat вместо домена, для которого должна быть статистика, ошибка:

"There are no domains which have awstats stats to display."

В разделе "Choose Log Programs" awstat выбрана как программа для обработки логов.

В конфигурации WHM указано, что обработка статистики для этого пользователя разрешена.

Как все решилось - запустил скрипт обработки логов для пользователя, и нужный домен появился в списке доменов для просчета статистики.

/scripts/runweblogs <пользователь>


Вторая проблема - на VPS перестала работать сипанель и все ее сервисы, даже Apache  просто не запускается.

При попытке зайти в WHM ошибка:

"more than 400 attempts to create a session failed"

Как оказалось - в конфигах VPS было указано обычное количество inode. Но пользователь загрузил на сервер огромное количество файлов и переполнили квоту по айнодам.




пятница, 6 августа 2010 г.

Размер письма в exim

Чтобы указать максимальный размер письма в exim, нужно в exim.conf указать параметр message_size_limit

Если этот параметр не указан(а он частенько не пишется в конфиге), то по-дефолту размер письма будет 50Мб.

Написано об этом здесь http://www.exim.org/exim-html-4.20/doc/html/spec_13.html#IX1148

суббота, 24 июля 2010 г.

Slave_IO_State: Reconnecting after a failed master event read

Смотрю как-то криво работала репликация slave c master.

Пишет некоторое время 

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Статус :  Slave_IO_State: Waiting for master to send event


Потом секунд через 5-10 дохнет и уже получаю

Slave_IO_Running: No
Slave_SQL_Running: Yes


В состоянии вижу :

Slave_IO_State: Reconnecting after a failed master event read

Связь между слейвом и мастером стабильная, вообще никаких потерь и чего. Все нужные порты открыты на отдачу и на прием.


Рустартую репликаю mysql - 10 секунд нормально, все равботает, потом сбой, репликация сдохла, еще 10 секунд - все работает.


Как решилось: в файле my.cnf есть параметр server-id и если там указан левый id, то вот и получается такая хрень как у меня.

Меняю server-id на правильный, совпадающий в hostname и рестартую mysql и репликацию и все начинает работать отлично.


суббота, 17 июля 2010 г.

Neighbour table overflow.

Dmesg выдает кучу сообщений типа:

Neighbour table overflow.

Neighbour table overflow.

printk: 1952 messages suppressed. Neighbour table overflow.


При этом нету связи со многих точек с этим сервером.


Что это означает - Neighbour table overflow говорит о переполнении arp-таблицы сетевого устройства.

Это мы можем увидеть в выводе команды arp -n или arp -e или arp -a.


Пофиксить можно простой перезагрузкой сети -

/etc/init.d/networking restart (в зависимости от операционной системы имя сервиса может немного отличаться)

Если через некоторое время проблема начинает повторятся - нужно обратить внимание на топологию сети или проблемы с сетевым оборудованием.

Также возможной причиной может являться утечка памяти в ядре. В этом случае обновляем ядро или патчим.

среда, 30 июня 2010 г.

ERROR 1218 (08S01): Error connecting to master: Lost connection to MySQL server at 'reading initial communication packet', system error: 110

ERROR 1218 (08S01): Error connecting to master: Lost connection to MySQL server at 'reading initial communication packet', system error: 110


Такая ошибка возникает тогда, когда slave не может корректно подключится к мастеру для совершения репликации.


Нужно проверить связь между этими двумя серверами, например даже телнетом на порт, на котором настроена репликация, зачастую это 3306.

суббота, 19 июня 2010 г.

cpanel + chown - Disk quota exceeded

Хотел поменять права на файлы, которые скопировал с другого сервера, и которые теперь должны иметь другого владельца, а не тут то было.

Сокращенно получаю эту ошибку

chown: changing ownership of `user': Disk quota exceeded

Проверил свободное место и квоты на cPanel - все отлично, есть свободное место и квоты далеки от переполнения.

Почитал на форуме cpanel, что могут быть переполнены квоты на самой vps.

Проверил по beancounters - не похоже.

В конфигах впски - (openvz) нашел параметр

QUOTAUGIDLIMIT

В описании этого параметра пишут "если число владельцев файла в VPS уже достигло своего предела, эти пользователи просто будут не в состоянии использовать данные файлы."

В принципе это и произошло. Увеличил этот параметр до 1000, перезапустил vps и все заработало. 

Сначала помню пробовал пересчитывать квоты средствами сипанели, потом уже на самой vps, потом уже полез в этот конфиг.  

вторник, 8 июня 2010 г.

скачать apple wwdc 2010

Вышел для скачивания очередной apple keynote.
Наконец-то выложили на торрентах презентацию apple wwdc 2010. Весь день искал. Пока без перевода, но Джобс говорит просто и доступно, почти все понятно и так.
Так вот, здесь можно скачать apple wwdc 2010 с торрентов. Ура, товарищи!

понедельник, 7 июня 2010 г.

linux on iphone 2g

Наткнулся на видео, где показан айфон с установленным android на борту.
грузится неимоверно долго, почти так долго как мой смартфон на виндовс мобайл :).




А еще вот только что нашел видео с нерусским типом, который кажется показывает фейк нового iphone 4g Сегодняшний wwdc покажет покажет как будет выглядеть официальный ипхон 4гэ

Плавная прокрутка в opera mac (smooth-scrolling)

С удовольствием пользуюсь браузером Opera под linux, но на Mac обнаружил довольно раздражающую фичу - прокрутка по сравнению с сафари совсем отсосная.

Поиск сказал искать включение плавной прокрутки в разделе "настройки обозревателя", но у себя такой опции не нашел.

Так вот, на маке красивая плавная прокрутка включается следующим образом:

идем на opera:config

ищем в поиске smooth

получаем опцию Smooth Scrolling - ставим над ней галочку, сохраняем, ребутаем оперу и юзаем приятную прокрутку.

воскресенье, 6 июня 2010 г.

grep по архивам gz

Старые логи хранятся в архивах формата gz. При этом часто возникает необходимость найти файлы в этих логах.

Можно скопировать архив gz во временную директорию, распаковать, грепнуть, удалить файлы и директорию.

Можно поступить круче - можно грепнуть архив. Архив грепается с помощью утилиты zgrep

Есть еще много аналогов программ для работы с архивами - zcat - аналог ката для архивов, zdiff, zless, znew.

При этом не стоит и злоупотреблять этими утилитам на сильно нагруженном сервере, поскольку как я заметил - систему они хорошо напрягают.

Кстати, если нужно грепнуть с меньшой нагрузкой на сервер какой-то большой файл, причем нужно грепнуть простое слово без регескпов - то можно юзать fgrep - он грепает без учета  символов $*[]^|()\, точнее он воспринимает их буквально. Работает действительно быстрее.

 


среда, 2 июня 2010 г.

Отследить DNS-flood.

Сегодня относительно заметил высокую нагрузку на DNS сервер. Под высокой нагрузкой подразумеваю 4% от общей нагрузки на сервер. При этом мне на мои запросы резволвы с трудом отдавались, процентов 40% от запросов отбрасывались по тайм-ауту. 

Нашел тулзу как посмотреть, как проследить за нагрузкой на dns-сервер и отследить dns-флуд, если таковой был.

Есть утилита dnstop. Запускается следующим образом 

dnstop <интерфейс>


Она показывает нагрузку по следующим параметрам:

-количество запросов и адреса с которых идут запросы

-нагрузка по корневым зонам (ru, com, net), 2-х и 3-х и т.д. уровневым доменам

-общее количество запросов на DNS

-по типу записи (A, A6, NS)


Кнопки для управления:

 s - Список адресов, с которых идут запросы к DNS
 d - Адреса, на которые идет запросы (если на одной сервере несколько dns с разными ip)
 t - Тип очереди
 o - Опкоды
 r - Ркоды
 1, 2, 3, 4 - уровень домена.
^R - обновить счетчики
^X - Выйти

Довольно простая и функциональная тулза.

Посмотрел сколько резолвится доменов в секунду - оказалось показатели в норме, траблы с сервером. 

Интересно были посмотреть какой процент каких зон резолвиться с этого сервера:

Query Name Count %
------------ --------- ------
com     1467   24.9
ru         1273   21.6
in-addr.arpa 935 15.9
net       523   8.9
org      429   7.3
ua        271   4.6
bg        125   2.1
nl         65    1.1
pl         61   1.0

вторник, 25 мая 2010 г.

[ERROR] Failed to initialize the master info structure

Подохла репликация, при запуске slave-сервера вылазят сообщения.

Обычный stop slave/start slave не помагает.

Синкаю новые таблицы с мастера, все равно эта ошибка появляется.

(ошибка ERROR 1201 (HY000): Could not initialize master info structure; more error messages can be found in the MySQL error log)

Slave_IO_Running: No
Slave_SQL_Running: No

В итоге все решилось просто:

RESET SLAVE;

и потом запускаю слейв:

start slave;

PS: или где-то было load data from master; между резет и старт, честно не помню.


Добавить дополнительный ip адресс cpanel

Задача - повесить аккаунт пользователя cpanel на отдельный ip

При попытке добавить ip через "add a new IP address"

получал ошибку

 "To add, edit, or remove IPs, please contact your server administrator."

Как правильно нужно сделать:

Чтобы повесить аккаунт на отдельный ip в cpanel нужно пересоздать аккаунт, и при создании нажать  Select Options Manually и в новом меню выбрать Dedicated IP и указать ip.

Но при этом нужно, чтобы был новый адрес в системе, на которой хотим вешать.


среда, 5 мая 2010 г.

Кнопки управления окном сместились Ubuntu 10.04

После обновления Ubuntu на домашнем компе - заметил что сместились кнопки управления. Небыло времени разбираться почему кнопки управления окном сместились с правой стороны на левую сторону окна. 

На работе тоже обновил на 10.04 и заметил что и там кнопки на окне переместились на левую часть окна. Кнопки были сделаны для привычного расположения, по-этому в левой части смотри слишком уродливо.

Почитал что пишут - оказалось разработчики специально сместили эти чертовы кнопки по идеологическим соображениям.

Почитал что нужно сделать, чтобы переместить кнопки обратно вправо - так вот простая инструкция:

Перемещение кнопок управления окном слева направо:

Открываем в терминале gconf-editor

Находим в ветке (/apps/metacity/general/button_layout)

                    /->

                            apps ->

                                           metacity

                                                            -> general


параметр button_layout и меняем на :minimize,maximize,close


Или можно сразу ввести в терминале требуемую ветку

gconftool-2 --type string --set /apps/metacity/general/button_layout 

и уже там поменять нужный параметр.


вторник, 20 апреля 2010 г.

vsftpd - анонимные пользователи.

Что разрешить в vsftp вход на сервер анонимным пользователям, добавляем в его конфиг пару строчек в /etc/vsftpd/vsftpd.conf 

anonymous_enable=YES - разрешаем анонимам доступ

anon_root=/var/ftp - директория для анонимных пользователей

Чтобы разрешить им запись в эту директорию добавляем 

write_enable=YES


воскресенье, 11 апреля 2010 г.

Установка phpPgAdmin (аналог phpmyadmin для postgresql)

Устанавливалось сие добро на Altlinux, но разницы не вижу куда ставить.

Какие пакеты нужны: apache2, php5, apache2_mod-php5, phpPgAdmin, php5-pgsql, php5-pdo_pgsql

Установили пакеты, указываем в файле /var/www/html/phpPgAdmin/conf/config.inc.php

$conf['servers'][0]['host'] = 'ip сервера c PostgreSQL';

обычно это

$conf['servers'][0]['host'] = 'localhost';


Меняем этому файлу владельца на apache2

chown apache2:apache2 /var/www/html/phpPgAdmin/conf/config.inc.php

После установки заходим в /etc/php/5.2.11/apache2-mod_php/php.ini и делаем правочки:

extension=pgsql.so
extension=pdo_pgsql.so


Если этого не сделать, и зайти по ссылке

http://ip-сервера/phpPgAdmin/ (кстати буквы P и A обязательно писать большими)

То увидим сообщение:

Ваша инсталяция PHP не поддерживает PostgreSQL. Вам необходимо пересобрать PHP, используя параметр --with-pgsql для configure.

В общем это все делаем, проверяем чтобы были модули pgsql.so и pdo_pgsql.so в указанной для модулей папке.

После этого можем смело заходить на наш phpPgAdmin. Видим морду. Если не нужно заходить под системными пользователями - то вводим юзверя, пароль и радуемся.

Если жизнь обидела, и нужно использовать крутого системного юзверя, то заходим обратно в /var/www/html/phpPgAdmin/conf/config.inc.php и меняем

$conf['extra_login_security'] = true;

на

$conf['extra_login_security'] = false;

И смело можем использовать phpPgAdmin для администрирования баз PostgreSQL.

Updated: и обязательно нужно проверить параметр memory_limit - он должен быть неменее 12Mb. Если будет стоять дефолтный 5Mb, то будут вылазить 500-е ошибки от Апача, поскольку не будет хватать памяти скриптам и будет в логах:

PHP Fatal error: Allowed memory size of 5242880 bytes exhausted (tried to allocate 52 bytes) in /var/www/html/phpPgAdmin/classes/database/Postgres82.php

Для наджности я поставил следующие настройки в /etc/php/5.2.11/apache2-mod_php/php.ini

max_execution_time = 300 ; Maximum execution time of each script, in seconds
max_input_time = 300 ; Maximum amount of time each script may spend parsing request data
memory_limit = 50M ; Maximum amount of memory a script may consume (5MB)

среда, 31 марта 2010 г.

Неправильные права загруженных файлов vsftpd.

При загрузку файлов через  vsftpd у файлов менялись права на совсем безобразные.

Как оказалось local_umask=022 означает не то, что при загрузку файлов у них будут права 022, а то, что у них отнимуться эти права, то-есть

chmod = 777-umask

Для того, чтобы загруженные через vsftpd файлы имели нужные права, например полный доступ - указываем

local_umask=000

 

 Но при этом загруженные файлы не будут иметь права на запуск, буду с правами 666, добавляем

file_open_mode=0777

и вуаля - загруженные файлы имеютполный доступ, то что нам по каким-либо причинам и требовалось.

четверг, 18 марта 2010 г.

Fatal error: Method Varien_Object::__tostring() cannot take arguments in

Fatal error: Method Varien_Object::__tostring() cannot take arguments in

/magento/public_html/lib/Varien/Object.php on line 488

Такая ошибка появилась после обновления php на сервере.

Ходят в народе слухи, что лечиться такими вот нехитрыми заменами :

заменить это строчку в файле /lib/Varien/Object.php (строка 484)

    public function ___toString(array $arrAttributes = array(), $valueSeparator=’,')

на вот эту 

    public function __invoke(array $arrAttributes = array(), $valueSeparator=’,')

И в файле /app/code/core/Mage/Core/Controller/Request/Http.php (строка 274)

    $host = split(‘:’, $_SERVER['HTTP_HOST']);

на

    $host = explode(‘:’, $_SERVER['HTTP_HOST']);

воскресенье, 14 марта 2010 г.

Перенос больших аккаунтов cpanel.

Если аккаунт занимает много места - больше гигабайта, то могут возникнуть трудности при переносе его с одной панели управления cpanel на другую внутреними средствами WHM.

Можно перенести используя скрипты сипанели.

/scripts/pkgacct - эти скриптом пакуем аккаунт и получаем на выходу в /home запакованый архив со всеми данными этого аккаунта - логи, расходование трафика, домены/субдомены и пр.

Использование:

/scripts/pkgacct <имя аккаунта>

Имя аккаунта можно смотреть в поле 'Username'  в 'cpanel->list accounts' или по имени папки в /home

После того как запаковалось - переносим на другой сервак и распаковываем.

Распаковывается скриптом

/scripts/restorepkg <имя аккаунта>

При этом перенесенный архив с аккаунтом лежал в /home,/usr/home,/web,/home2,/home3,/root,/usr


После переноса направляем домен.

среда, 10 марта 2010 г.

Получать адресс клиента, который пользуется прокси.

Если перед попаданием на сайт клиент проходит прокси, и возникает проблема получения его реального адреса или другая ситуация - есть сайт, который лежит на сервере за проксей - то чтобы получить реальный адрес, а не адрес прокси, через которую проходим можно юзать такие переменные: 

Переменная  $_SERVER['REMOTE_ADDR'] покажет адрес прокси, с которой к нам пришли.

Переменная $_SERVER['HTTP_X_FORWARDED_FOR'] покажет настоящий адрес клиента.



воскресенье, 7 марта 2010 г.

dead but subsys locked

Процесс стартует нормально, но при проверке статуса показывает:

mydns dead but subsys locked

Гугль говорит нужно удалить /var/lock/subsys/mydns

После удаления сервис заработал но при прверке статуса так и писал про subsys locked

суббота, 6 марта 2010 г.

500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp

При попытке зайти на свежеустановленный vsftpd выдает такую ошибку:

500 OOPS: vsftpd: cannot locate user specified in 'ftp_username':ftp

Решается добавлением строчки  ftp_username=nobody  в

/etc/vsftpd.conf

Если после этого напишет, что 

Response:    530 This FTP server is anonymous only.

То в /etc/vsftpd.conf нужно включит локальных пользователей

local_enable=YES
write_enable=YES



среда, 3 марта 2010 г.

Установка Mydns на centos 64-bit

Официально пакета Mydns для платформ 64-битных я не нашел, устал уже сегодня гуглить и заниматься всей этой работой, нашел уже готовый вариант как его туда поставить.

Качаем отсюда обычную 32 версию и ставим на свои 64 бита.

wget http://mydns.bboy.net/download/mydns-mysql-1.1.0-1.i386.rpm

Устанавливаем

rpm -ivh mydns-mysql-1.1.0-1.i386.rpm

Устанавливается без проблем, ничего не просит и не тянет, но как работает еще не проверял.

Старый Centos 4.5

При yum-update вылезает такая штука, все  заканчивается фейлом.

--> Processing Dependency: libc.so.6(GLIBC_2.4)(64bit) for package: mtr

И так для многих пакетов.

Решилось просто через

yum install libc.so.6

Юм обновил libc.so.6 и все заработало.


upd: но потом повылазило много еще всякой херни. Это небыло решением. Нужно было убрать левый репозиторий из /etc/yum.repos.d/

И все равно нельзя нормально обновить старый Центос до последней версии, пишут на форуме центоса, что адекватные люди так не делают, типа с 4.* на 5.4.

вторник, 2 марта 2010 г.

Посмотреть какой трафик идет с определенного ip

Чтобы посмотреть что льется с определенного адреса и связки адрес и порт, можно использовать tcpdump с такими параметрами:

tcpdump -envi eth0 host 92.182.72.180 and not port 22 

Squid 503 error. Unable to forward this request at this time.

При работе прокси возникли траблы - не хотела через себя пропускать траф - такая ошибка

ERROR
The requested URL could not be retrieved
___________________________________________________________________

While trying to retrieve the URL: http://example.com /

The following error was encountered:
Unable to forward this request at this time.

This request could not be forwarded to the origin server or to any parent caches. The most likely cause for this error is that:
The cache administrator does not allow this cache to make direct connections to origin servers, and
All configured parent caches are currently unreachable.
__________________________________________________________________


Как оказалось IP этой прокси был забанен в iptables и все пакеты дропались. Убрал правило из iptables - все заработало.


вторник, 23 февраля 2010 г.

Шпаргалка по mysql. Взяд у ZlO

Взяд здесь

Работа с базами


Создаем базу
CREATE DATABASE maps;
Убиваем базу
DROP DATABASE maps;
Смотрим базы
SHOW DATABASES;

Работа с пользователя

Создаем локального юзера
CREATE USER 'user'@'localhost' IDENTIFIED BY 'PASSWORD';
Создаем сетевого юзера с ограниченными правами
GRANT SELECT, RELOAD, LOCK TABLES ON *.* TO 'user'@'%' IDENTIFIED BY 'PASSWORD';
Даем права юзеру на базу
GRANT ALL on base.* to user@"%";
Забираем права у юзера на базу
REVOKE SELECT,INSERT,UPDATE,DELETE,CREATE,DROP on base.* from user@'%';
Создаем суперюзера
GRANT ALL on *.* to user@host with GRANT OPTION;
Сбрасываем привилегии
flush privileges;

Работа с дампами

Дампим в файл без таблицы

mysqldump forum --ignore_table=forum.w3t_Posts_archive > /var/tmp/forum_base.sql
Дампим и заливаем сразу в другую базу без промежуточного файлы
mysqldump forum --ignore_table=forum.w3t_Posts_archive | mysql new_forum
Дампим базу без данных из одной таблицы
mysqldump forum --no-data w3t_Posts_archive > /var/tmp/forum_tables.sql
Дампим по сети
mysqldump -u user -p -h172.16.10.1 base > /var/tmp/base.sql
Дампим по сети одну таблицу
mysqldump -u user -p -h172.16.10.1 base --tables single_table > /var/tmp/base.sql
Дампим по сети и заливаем сразу в свою базу
mysqldump -u user -p -h172.16.10.1 base | mysql newbase
Дампим и заливам дамп по сети на другую машину в файл
mysqldump -u user -p base | gzip -c -1 | ssh user@hostname cat ">" /tmp/base.sql.gz
Восстанавливаем базу из bin-logs с определенного времени ( времени последнего дампа) до необходимого
mysqlbinlog --start-datetime='2008-12-13 22:31:42' --stop-datetime='2008-12-14 02:00:00' -d forum mysql-bin.* > forum2.log.sql

Получаем дамп который нужно потом раскатать поверх.

Репликация
Посмотреть позицию мастера
SHOW MASTER STATUS\G
Посмотреть состояния слэйва
SHOW SLAVE STATUS\G
Пропустить ошибку при репликации
set GLOBAL SQL_SLAVE_SKIP_COUNTER = 1;
Лочим таблицы
FLUSH TABLES WITH READ LOCK;
Указываем мастера
CHANGE master TO
master_host = '172.22.100.1',
master_user = 'repl',
master_password = 'password',
master_log_file = 'log-bin.000093',
master_log_pos = 1369;

Талбицы
Список таблиц в базе
show tables;
Имена столбцов в таблице
explain table;
Очистить данные в таблице
truncate table;

Разное
Отключаем bin-log на время нашего сеанса
set sql_log_bin=0;
Посмотреть InnoDB статут
show innodb status\G
Посмотреть параметры mysql сервера
show GLOBAL variables;
Установить параметр mysql сервера
set GLOBAL key_buffer_size=127999;
Посмотреть процессы mysql сервера
show processlist;
Убить процесс по ID
kill ID;

понедельник, 22 февраля 2010 г.

Задрал страшно "mysql ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)"

Два часа бился, и права менял юзерам и чере жопу запускал sql и локальные права смотрел и переустанавливал, что-то ни как не пог пофиксить.   

[root@serv ~]# mysql

ERROR 1045 (28000): Access denied for user 'root'@'localhost' (using password: YES)

Решил просто скоприровав базу mysql с другого сервака.


Потом было это:

ERROR 1201 (HY000): Could not initialize master info structure;

И всякое такое:

Need to reconfiguring replication

Пофиксилось тоже просто незаурядным способом.

stop slave;
reset slave;
start slave;

Проверяем статус репликации : 

Slave_IO_Running: Yes
Slave_SQL_Running: Yes

Ок, работает. 

Была еще интересная трабла сегодня. 

Прокся не отдавала контент - на серваке запущен сквид, iptables  никак не блочит - на серваке все работает. Телнетом  конекчусь к 80 порту - ответ есть, но реально ничего работать не холет. Колупался и так и сяк - все равно так как нужно работать не хочет.

Как оказалось - хостер до сервака перенаправлял 80 куда в лес.

code: joh6zoL4

пятница, 19 февраля 2010 г.

Cpanel - один сайт забирает под себя ip.

После выделения нового ip-адреса для cpanel после переноса на этот адрес первого аккаунта остальные домены не могут привязаться к нему - уже нету этого нового ip в списке ip-адресов.

Решается добавлением нового ip в список  /etc/ipaddrpool

После добавления можно вешать на него много адресов.

четверг, 11 февраля 2010 г.

Поиск и замена в VIM

Эта команда сэкономила мне тучу времени.
Чтобы найти слово или словосочетание в vim и заменить его на другое нужно использовать :
:%s/\<что_ищем\>/на_что_заменяем/gc

Красота. Вим сам находит нужное слово, заменяет на нужно. Все красиво и аккуратно.

Что означают элементы этой команды:
Команда состоит из:
:
Вход в командный режим

%
Выполнить эту команду на всех строках (% - синоним "от первой до последней строки".)

s
Сокращенная форма команды :substitute.

/\<что_ищем\>/
Здесь указываем нужный текст или слово, которое в последствии придется заменять. \ указывает на начало слова и \> - указывает на конец.

/на_что_заменяем/
здесь вводим тект, на который мы и будем заменять

gc
Флаги
g
Глобально -- Заменяет каждое вхождение, не используя "с начала и до конце" на каждой строке
c

Подтверждение -- Спрашивать перед каждой заменой


Чтобы не подтверждать замену каждого слова можно использовать эту команду без "с" в конце. Тогда vim заменит все вхождения слова в файле.

суббота, 6 февраля 2010 г.

DegradedArray event had been detected on md device /dev/md1.

A DegradedArray event had been detected on md device /dev/md1.

Faithfully yours, etc.

P.S. The /proc/mdstat file currently contains the following:

Personalities : [raid1]
md1 : active raid1 sdb3[1]
465852800 blocks [2/1] [_U]

md0 : active raid1 sdb1[1]
20482752 blocks [2/1] [_U]

unused devices:

Говорит что распался рейд. Сегодня ночью случилось. Сейчас нашел что делать в таких случаях, буду читать, потом сюда брошу, если не забуду.

четверг, 4 февраля 2010 г.

DOS запрос одной страницы. Как вычеслить.

Если запрашивают одну страницу с сайта, но очень много раз, то довольно легко по логам посмотреть с какого ip это делают и прибить, если конечно делают с одного адреса.

Смотрим по логам кто у нас много запрашивает
tail -n 5000 /var/log/httpd/access.log | awk '{print $1}' | sort | uniq -c | sort -rn

Получим на выходе список адресов с которых заходили с количеством обращений.
Конечно нужно уточнять расположение логов.

Тоже самое делаем когда используется прокся - парсим, выделяем адрес ( в логах сквида выделяем awk '{print $3}'), сортируем, баним.


updated:
И вот еще положу на всякий, чтобы было под рукой.
netstat -ntu | awk '{print $5}' | sed -e '1d' -e '2d'|sort | uniq -c | sort -nr |head -n20
netstat -n -p | grep SYN_REC| awk '{print $5}'|awk -F: '{print $1}' | sort -n | uniq -c | sort -nr | head -n1

Очистка кэша.

find /var/www/site_on_cms_with_cache/dir/cache/ -type f -ctime +7 -path .svn -prune -print0 | xargs -r0 rm -fr

четверг, 28 января 2010 г.

Перенос систесы с винта на винт.

Недавно переносил систему с одного жесткого диска на другой. Все сводится к обычному копированию, подправке fstab и установке загрузчика (в моем случае это был grub2).
Сначала делалось экспериментальным способом с гуглом под рукой, с результате чего была найдена статейка, которую я и перенес к себе в вики.
В статейке написано откуда она.
Вот Перенос системы на другой диск

пятница, 22 января 2010 г.

Clearing orphaned inode

При проверке дисков с помощью fsck вылазили сообщения типа:
Clearing orphaned inode 144 (uid=118, gid=127, mode=0100600, size=0)

Почитал здесь : https://bugzilla.redhat.com/show_bug.cgi?id=147748
Там говорится, что это не ошибка, ничего страшного нету, это просто куски файлов, которые использовались в время работы с файлами, но по каким-то причинам небыли удалены после закрытия этих файлов, или не смогли удалиться после сбоя по питанию или перезагрузки компьютера.

Посмотреть список пользователей mysql

SELECT USER from mysql.user;