MySQL перекодировка базы

Mysql поддерживает много кодировок и это нередко является головной болью для системных администраторов. 

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

Настройки mysql отвечающие за кодировки:
character_set_client - кодировка, в которой данные будут поступать от клиента
character_set_connection - кодировка по умолчанию для всего, что в рамках соединения не имеет кодировки
character_set_database - кодировка по умолчанию для баз
character_set_filesystem - кодировка для работы с файловой системой
character_set_results - кодировка, в которой будет выбран результат
character_set_server - кодировка, в которой работает сервер
character_set_system - кодировка, в которой задаются идентификаторы MySQL, всегда UTF8
character_sets_dir - папка с кодировками

Подробнее: MySQL перекодировка базы

Как конвертировать образ img в LVM диск

Конвертация виртуальной машины из img файла в LVM раздел

1. Посмотрим на наш img файл:
# ls -la /home/skuleshov/
total 27568
drwx------ 3 skuleshov skuleshov 4096 Mar 31 08:55 .
drwxr-x--x 105 root root 4096 Mar 25 12:40 ..
-rw------- 1 skuleshov skuleshov 167 Mar 31 09:46 .bash_history
-rw-r--r-- 1 root root 11468800 Mar 25 08:48 ra-wrt-x86-disk1.vmdk
-rw-r--r-- 1 root root 3495 Mar 25 08:48 ra-wrt-x86.ovf
-rw-r--r-- 1 root root 55050240 Mar 31 08:55 rkn1.dp.infra.img
drwx------ 2 skuleshov skuleshov 4096 Oct 7 15:10 .ssh

2. Создаем логический том такого же размера и обязательно указываем символ b тем самым говорим lvm, что размер мы определяем в байтах (по умолчанию мегабайты Mb)
#lvcreate -L 55050240b -n rkn1.dp.infra vg1

3. Конвертируем
#qemu-img convert /home/skuleshov/rkn1.dp.infra.img -O raw /dev/vg1/rkn1.dp.infra

Подробнее: Как конвертировать образ img в LVM диск

Монтирование LVM томов

Монтирование LVM томов

Иногда, при работе с виртуальными машинами на LVM томах, требуется смонтировать LVM разделы.

Допустим у нас есть виртуальная машина, диски которой есть LVM тома.

Необходимо добраться до данных в этих разделах с родительской машины.

Воспользуемся утилитой kpartx, которая даёт возможность строить карты устройств dev maps для разделов. Блочное устройство, внутри которого находятся тома LVM может быть любым, в частности, это может быть том LVM, том EVMS, простой дисковый раздел или физическое устройство.

Карты находятся здесь:

[root@node36 ~]# ls -l /dev/mapper

total 0

crw-rw---- 1 root root 10, 236 Jan 14 14:08 control

lrwxrwxrwx 1 root root 7 Jan 14 14:08 vg1-cacti--corp.infra.local -> ../dm-0

Подробнее: Монтирование LVM томов

Sudo "sorry, you must have a tty to run sudo ; TTY=unknown"

 Sudo "sorry, you must have a tty to run sudo ; TTY=unknown"

Ошибка: sorry, you must have a tty to run sudo ; TTY=unknown, возникает если для пользователя, из под которого запускается команда с правами sudo, запрещена командная оболочка. Для исправления такого недуга, в sudoers нужно закомментировать строчку с опцией requiretty, т.е.

#Defaults requiretty

Как запретить двойной запуск cron задач?

Администрируя нагруженные проекты, возникает проблема повторного запуска cron задач, т.е. когда во время выполнения одного скрипта, cron запускает второй такой же скрипт. Такие ситуации порой приводят к некорректным результатам работы скрипта и другим проблемам (зависит от самого скрипта).

Как запретить двойной запуск cron задач?
Самое простое в Linux, что можно придумать это воспользоваться утилиткой flock.
Утилита принимает имя лок-файла и команду для выполнения. Как он работает: flock ставит лок на указанный файл и если лок поставлен успешно, тогда запускает указанную команду.

Итого имеем:

* * * * * /usr/bin/flock -n /tmp/email.lock -c "/usr/bin/perl /home/zvonilka/send_email3.pl" >> /var/log_email 2>&1
* * * * * (sleep 30; /usr/bin/flock -n /tmp/email.lock -c "/usr/bin/perl /home/zvonilka/send_email3.pl" >> /var/log_email 2>&1)

Кстати, тут еще показано как просто можно научить cron запускать задачу каждые 30 секунд.

Страница 4 из 7

unix-way