Сен 242013
 

Очистка mysql binlog (бинарный лог mysql)

Для анализа изменений, которые были совершены в базе, в MySQL присутствует замечательный функционал, называемый binlog.
Для этого, в файле my.cnf, нужно вписать строчку

log-bin

Тогда, после перезапуска MySQL, в каталоге с базами (например, /var/lib/mysql или /var/db/mysql), будут создаваться файлы вида mysqld-bin.000001.

Прописываем expire_logs_days=7 в my.cnf
Перезагружаем mysql, затем пишем в консоли mysql

mysql> flush logs;

чтобы очистить логи!

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

#!/bin/sh
echo 'PURGE BINARY LOGS BEFORE NOW() - INTERVAL 30 DAY;' | mysql -u root -pyourrootpassword
Авг 182013
 

Как скачать полностью сайт? Возможно через wget

Cкачать весь сайт можно очень просто через linux или FreeBSD, используя утилиту wget

Код с ключами:

wget -r -k -l 7 -p -E -nc http://site.com/
Авг 102013
 

Установив последнюю версию phpMyAdmin на сервер, появилась проблема с авторизацией. При попытке авторизации через https после нажатия кнопки входа, происходил редирект на https://домен:80/myadmin. 80 порт при ssl соединении, совсем непонятно. Самое интересное, что авторизация срабатывает и если убрать 80 порт, то страница с базами загрузиться без проблем.

Как исправить?

Открываем конфигурационный файл config.inc.php и добавляем строчку

$cfg[‘PmaAbsoluteUri’] = ‘https://ваш домен/myadmin’;

Также, для безопасности, добавьте директиву

$cfg[‘ForceSSL’] = true;

Тогда все запросы будут идти по безопасному протоколу https, даже, если Вы зайдете через http.

Можно конечно, еще сделать редиректы через mod_rewrite, но я этого не пробовал и не уверен, что все сработает.

Апр 172013
 

Мониторинг диска с помощью smartmontools

Следить за дисками необходимо так же тщательно, как и за температурой, пылью в сервере. Даже если вы используете супер надежный Raid массив, контроль за сервером показывает уровень Системного Администратора.
Для мониторинга и диагностики состояния HDD существует технология smart — технология оценки состояния жесткого диска с помощью встроенной аппаратной диагностики.

Специально для систем мониторинга в Unix системах разработана утилита smartmontools. Данный софт присутствует во всех известных мне Unix системах.

Сейчас мы настроим smartd который находится в пакете smartmontools для непрерывного мониторинга HDD штатными средствами smartmontools, устанавливаем smartmontools: (или из Backports)

Устанавливаем пакет в Debian или Ubuntu:

# apt-get install -y smartmontools

Устанавливаем пакет в CentOS или RedHat:

# yum install -y smartmontools

Устанавливаем пакет в FreeBSD

# cd /usr/ports/sysutils/smartmontools
# make install clean

smartctl — просмотр текущих значений S.M.A.R.T., запуск тестов диагностики диска вручную;
smartd — демон для записи в системный журнал изменений в значениях S.M.A.R.T, уведомления по электронной почте об ошибках, запуска тестов диагностики по расписанию;

Проверяем установлен ли S.M.A.R.T., с помощью команды:

# smartctl -i /dev/sda

Если S.M.A.R.T. отключен, то включаем:

# smartctl -s on /dev/sda

Настраиваем S.M.A.R.T. как демон в /etc/default/smartmontools, для примера добавляем два диска:

enable_smart=”/dev/sda /dev/sdb”
start_smartd=yes
smartd_opts=”–interval=1800″

Автоматизируем мониторинг для для дисков.

В файл /etc/smartd.conf (записываем email для получения уведомлений, о состоянии HDD)

/dev/sda -S on -o on -a -I 194 -W 4,38,45 -R 5 -H -l error -l selffortest -m sistemadmin@mail.ru -s (S/../.././02|L/../../6/03)
/dev/sdb -S on -o on -a -I 194 -W 4,38,45 -R 5 -H -l error -l selffortest -m sistemadmin@mail.ru -s (S/../.././02|L/../../6/03)
или
/dev/sda -S on -o on -a -I 194 -m sistemadmin@mail.ru

-a заставляет smartd наблюдать за всеми доступными SMART-параметрами дисков
-I 194 указывает smartd игнорировать изменения значения атрибута #194
-m указывает на необходимость отправки email-уведомлений.

Внимание! В файле smartd.conf вы сможете увидеть уже готовые примеры с описанием! Воспользуйтесь ими.

Запускаем сервис:

# /etc/init.d/smartmontools start

Можно проверить пишутся ли логи:

cat /var/log/syslog | grep smartd

Ключи программы взятые из MAn:

-d TYPE Тип устройства: ata, scsi, marvell, removable, 3ware,N, hpt,L/M/N
-T TYPE допустимое отклонение: normal, permissive
-o VAL Включает/выключает автоматические оффлайн тесты (on/off)
-S VAL Включает/выключает автосохранение атрибутов (on/off)
-n MODE Не проверять. Один из режимов: never, sleep, standby, idle
-H Мониторить SMART статус, уведомлять только при ошибках.
-l TYPE Мониторить SMART логи. Режимы: error, selftest
-f Монитор отказа для любых атрибутов ‘Usage’
-m ADD Письмо с варнингами на ADD для -H, -l error, -l selftest, and -f
-M TYPE Изменение поведения отсыла е-майлов (см. ман)
-s REGE Запустить тест когда дата совпадает с регулярным выражением (см. ман)
-p Сообщать о изменениях в ‘Prefailure’ атрибутах
-u ообщать о изменениях в ‘Usage’ атрибутах
-t Эквивалентно -p и -u директивам
-r ID Также сообщать ‘RAW’ значения атрибутов ID с -p, -u или -t
-R ID Следить за изменениями в атрибуте ID ‘Raw’ значения -p, -u or -t
-i ID Игнорировать атрибут ID для -f директивы
-I ID Игнорировать атрибут ID для -p, -u или -t директивы
-C ID Рапортовать если счётчик `ждущих` секторов не равен нулю
-U ID Рапортовать если счётчик `некорректируемых` секторов не равен нулю
-W D,I,C Monitor Temperature D)ifference, I)nformal limit, C)ritical limit
-v N,ST Mодифицировать метку для атрибута N (для нестандартных атрибутов)
-a Дефолт: эквивалентно -H -f -t -l error -l selftest -C 197 -U 198
-F TYPE Для ошибок в прошивке. Значения: none, samsung
-P TYPE Предустановки для диска: use, ignore, show, showall
# Комментарии: текст после него игнорируется
\ Продолжения строки

Апр 132013
 

Как изменить кодировку MySQL базы данных или таблицы. Настройка collation для работы с MySQL.

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

set character_set_client='cp1251
set character_set_results='cp1251
set collation_connection='cp1251_general_ci

Изменяем кодировку для базы данных:

ALTER DATABASE `имя базы` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;

Изменяем кодировку для таблицы:

ALTER TABLE `tablename` CONVERT TO CHARACTER SET cp1251 COLLATE cp1251_general_ci;
ALTER TABLE `tablename` DEFAULT CHARACTER SET cp1251 COLLATE cp1251_general_ci;

изменить, кодировка, mysql, базы данных, таблица, collation, Настройка, DATABASE, set, character_set_client, character_set_results, collation_connection, ALTER, TABLE