резервное копирование (backup) всех баз mysql

Запись создана 11 февраля, 2009

Прошелся по нескольким блогам. почитал и удивился тому что для того чтобы сделать дампы всех баз mysql люди используют mysqldump —all-databases. На мой взгляд вариант более чем неудобный.

Предложу более правильный вариант, снимаются дампы со всех баз данных каждая база в отдельный файл. Для пояснения:
/backup/mysql/ — папка куда будем складывать дампы.
megapass — пароль root к mysql

итак собственно сам скрипт:
[cc lang=»bash»]
for i in `mysql -pmegapass -e’show databases;’ | grep -v information_schema | grep -v Database`; do mysqldump -pmegapass $i > `date +%Y-%m-%d`-$i; gzip `date +%Y-%m-%d`-$i;done
[/cc]

теперь поясню что делается, в цикле вывода имен всех баз данных кроме information_schema и Database выполняется mysqldump в файл дата-имя_базы, затем дамп жмется gzip-ом.

На выходе получаем пачку файлов на подобии:
2009-02-11-shakirov_kayako.gz
2009-02-11-shakirov_mantis.gz
2009-02-11-shakirov_openfire.gz

Например если в системе несколько пользователей и базы данных у них сделаны правильно (имя базы с префиксом имени пользователя, например shakirov_base), то можно делать бакапы баз разных пользователей в разные папки. С полученными бакапами можно поступать как удобно, хранить на отдельном диске, разделе. внешнем ftp сервере или заливать куда-то по scp.

» Запись из раздела CentOS Linux, MySQL, Unix | 6 комментариев

FreeBSD free memory stats

Запись создана 9 января, 2009

В linux-ах есть полезная тулза free, вывод её привожу ниже:
[cc lang=»bash»]
[root@iit ~]# free
total used free shared buffers cached
Mem: 4148892 1736588 2412304 0 207108 859128
-/+ buffers/cache: 670352 3478540
Swap: 2048276 32812 2015464
[/cc]
В FreeBSD такой утилиты увы нет, почти нет. Замены есть две, perl скрипт (freebsd-memory — List Total System Memory Usage) и freecolor. Листинг установке того и другого ниже:
[cc lang=»bash»]
fetch -o /usr/local/bin/free https://itblog.su/wp-content/uploads/2009/01/freebsd-memorypl.txt
chmod +x /usr/local/bin/free

-bash-2.05b# free
SYSTEM MEMORY INFORMATION:
mem_wire: 257478656 ( 245MB) [ 12%] Wired: disabled for paging out
mem_active: + 564359168 ( 538MB) [ 26%] Active: recently referenced
mem_inactive:+ 1172426752 ( 1118MB) [ 55%] Inactive: recently not referenced
mem_cache: + 64004096 ( 61MB) [ 3%] Cached: almost avail. for allocation
mem_free: + 44834816 ( 42MB) [ 2%] Free: fully available for allocation
mem_gap_vm: + 458752 ( 0MB) [ 0%] Memory gap: UNKNOWN
————— ———— ———— ——
mem_all: = 2103562240 ( 2006MB) [100%] Total real memory managed
mem_gap_sys: + 37957632 ( 36MB) Memory gap: Kernel?!
————— ———— ————
mem_phys: = 2141519872 ( 2042MB) Total real memory available
mem_gap_hw: + 5963776 ( 5MB) Memory gap: Segment Mappings?!
————— ———— ————
mem_hw: = 2147483648 ( 2048MB) Total real memory installed

SYSTEM MEMORY SUMMARY:
mem_used: 866217984 ( 826MB) [ 40%] Logically used memory
mem_avail: + 1281265664 ( 1221MB) [ 59%] Logically available memory
————— ———— ———— ——
mem_total: = 2147483648 ( 2048MB) [100%] Logically total memory

[/cc]

[cc lang=»bash»]cd /usr/ports/sysutils/freecolor
make install clean

-bash-2.05b# freecolor -t -m -o
total used free shared buffers cached
Mem: 2042 834 1207 0 0 61
Swap: 2048 2 2045
Total: 4294965248 = ( 2890 (used) + 3314 (free))
[/cc]

» Запись из раздела FreeBSD | 6 комментариев

How to kill TCP connection in CentOS

Запись создана 10 декабря, 2008

Убить tcp соединения в Centos (да и не только) можно утилитой tcpkill. Утилита входит в пакет dsniff, ставим из репозитория epel (на данный момент в этом репозитарии dsniff новее) или rpmforge под CentOS 5.2
[cc lang=»bash»]
[root@srv001 ~]# rpm -Uvh http://download.fedora.redhat.com/pub/epel/5/i386/epel-release-5-3.noarch.rpm
[root@srv001 ~]# yum install dsniff
[/cc]

Ну, и несколько примеров использования:
1. убить все исходящие соединения с интерфейса eth0 на порт 21
[cc lang=»bash»]tcpkill -i eth0 port 21[/cc]

2. убить все соединения исходящие/входящие с хоста
[cc lang=»bash»]tcpkill host 192.168.0.1
tcpkill host hostname.ru[/cc]

3. убить все ip пакеты между хостом 192.168.0.1 и любым другим, кроме 192.168.0.10
[cc lang=»bash»]tcpkill ip host 192.168.0.1 and not 192.168.0.10[/cc]

Ну и различные от этого вариации. Прошу учесть тот факт что если пакеты убивать нужно идущие на/с ip «зацепленного» на логический интерфейс (например eth0:1), то нужно явно это указать, как-то так:
[cc lang=»bash»]tcpkill -i eth0:1 host 123.123.123.1[/cc]

» Запись из раздела CentOS Linux, networking, Unix | 4 комментария

соответствие чипов памяти и названия модуля

Запись создана 21 ноября, 2008

Делаю запись для себя, чтобы не забыть :)

Название модуля Частота шины Тип чипа Пиковая скорость передачи данных
PC2-3200 200 МГц DDR2-400 3.2 
PC2-4200 266 МГц DDR2-533 4.2 ГиБ/с
PC2-5300 333 МГц DDR2-667 5.3 ГиБ/с
PC2-5400 337 МГц DDR2-675 5.4 ГиБ/с
PC2-5600 350 МГц DDR2-700 5.6 ГиБ/с
PC2-5700 355 МГц DDR2-711 5.7 ГиБ/с
PC2-6000 375 МГц DDR2-750 6.0 ГиБ/с
PC2-6400 400 МГц DDR2-800 6.4 ГиБ/с
PC2-7100 444 МГц DDR2-888 7.1 ГиБ/с
PC2-7200 450 МГц DDR2-900 7.2 ГиБ/с
PC2-8000 500 МГц DDR2-1000 8.0 ГиБ/с
PC2-8500 533 МГц DDR2-1066 8.5 ГиБ/с
PC2-9200 575 МГц DDR2-1150 9.2 ГиБ/с

» Запись из раздела Несортированное | 2 комментария

How to repair a corrupt Firebird database?

Запись создана 19 ноября, 2008

Частично повредилась база данных Firebird, ругается и не дает делать бакапы. К счастью в серверной установке Firebird есть утилиты для восстановления БД (если повреждения не серьезные). Ниже листинг батника.
[cc lang=»dos»]
echo подготавливаем базу к дампу
gfix.exe -mend -user SYSDBA -pas masterkey server:c:\databases\base.gdb

echo делаем дамп
gbak.exe -b -g -user SYSDBA -pas masterkey server:c:\databases\base.gdb c:\databases\backup\base.bak

echo переименовываем файл базы
rename c:\databases\base.gdb c:\databases\base.orig

echo восстанавливаем базу из дампа.
gbak.exe -user SYSDBA -pas masterkey C:\databases\backup\base.bak server:c:\databases\base.gdb
[/cc]

Принятые умолчания и пояснения:
c:\databases\base.gdb — путь к файлу бд
server:c:\databases\base.gdb — сетевой путь к файлу бд (server менять на имя машины и БД)
у GFIX есть еще пара ключей. -v проверка БД, и -v -f полная проверка БД Firebird

» Запись из раздела Базы данных | 8 комментариев

Pandion Reconnect

Запись создана 19 ноября, 2008

В популярном Jabber клиенте Pandion есть одна неприятность, не умеет он делать реконнект если потеряно сединение с сервером. Лечится это правкой файла C:\Program Files\Pandion\src\main\XMPPOnStream.js меняем блок (в районе 297-ой строки):
[cc lang=»javascript»]
else if ( ReceivedXML.documentElement.selectSingleNode( ‘/stream:error’ ) )
{
if ( external.windows.Exists( ‘signup’ ) )
OnLoginAbort();
else
{
external.globals( ‘XMPPReconnect’ ) = false;
var Str = ‘‘;
warn( ‘SENT: ‘ + Str );
external.XMPP.SendText( Str );
external.XMPP.Disconnect();
}
}
[/cc]
на блок:
[cc lang=»javascript»]
else if ( ReceivedXML.documentElement.selectSingleNode( ‘/stream:error’ ) )
{
if ( external.windows.Exists( ‘signup’ ) )
OnLoginAbort();
else
{
if ( ReceivedXML.documentElement.selectSingleNode( ‘/stream:error/system-shutdown’ ) )
external.globals( ‘XMPPReconnect’ ) = true;
else
external.globals( ‘XMPPReconnect’ ) = false;
}
}
[/cc]

» Запись из раздела jabber | Комментировать

Ajax Edit Comments — проблемы с кодировкой.

Запись создана 14 ноября, 2008

Есть такой замечательный плагин, WP Ajax Edit Comments. Позволяет он очень удобно редактировать комментарии, как хозяину блога (ссылочки убрать, например), так и комментатору. Но вот незадача, плагин этот выводит AJAX форму крякозябрами.


Лечится это добавлением в файл wp-content/plugins/wp-ajax-edit-comments/php/comment-editor.php строчки
[cc lang=»php»]header(«Content-Type:text/html;charset=utf-8»);[/cc]

» Запись из раздела wordpress | 9 комментариев

sendmail: rejecting connections on daemon MTA: load average

Запись создана 6 октября, 2008

У sendmail есть такая забавная настройка, позволяющая не релеить письма в случае высокого load average. По умолчанию, если не ошибаюсь, значение авг не должно превышать 12-ти. Если avg выше, то будут лезть ошибки вроде этой:
sendmail: rejecting connections on daemon MTA: load average: 26

Лечится это внесением в конфиг /etc/mail/sendmail.cf строчек:
[cc lang=»bash»]
O QueueLA=100
O RefuseLA=100
[/cc]

Или же в конфиге /etc/mail/sendmail.mc директивы:
[cc lang=»bash»]
define(`confQueueLA’, `100′)dnl
define(`confRefuseLA’, `100′)dnl
[/cc]

» Запись из раздела Unix | 2 комментария

монтирование раздела с кирилицей в именах файлов

Запись создана 30 сентября, 2008

Ситуация, CentOS 5.2 с локалью ru_RU.UTF-8 и диск снятый с виндовой машины, соответственно все имена файлов в кодировке windows-1251.

Задача: расшарить диск по ftp так чтобы файлы с кириллическими именами отображались нормально.

Устанавливаем локаль ru_RU.CP1251
[cc lang=»bash»][root@dev2 ~]# localedef —no-archive -c -f CP1251 -i ru_RU ru_RU.CP1251[/cc]

Монтируем диск:
[cc lang=»bash»][root@dev2 ~]# mount -t ntfs-3g -o locale=ru_RU.CP1251 /dev/sda1 /var/ftp/pub/[/cc]

Для того чтобы диск монтировался при старте системы, пропишем в /etc/fstab
[cc lang=»bash»]/dev/sda1 /var/ftp/pub/disk-f ntfs-3g locale=ru_RU.CP1251 0 0[/cc]

» Запись из раздела CentOS Linux | 2 комментария

аналог seq для freeBSD

Запись создана 30 сентября, 2008

утилита seq присутствующая в linux весьма полезна, что она делает? просто считает от и до. Например:[cc lang=»bash»][root@rhca ~]# seq 1 5
1
2
3
4
5
[/cc]
В написании минискриптов, вещь не заменимая.. но в FreeBSD нет утилиты seq, зато есть аналог: jot

Приведу пример, например есть логи /var/httpd/logs/error_log.0 … error_log.9 нужно их «обнулить» в linux я бы сделал так:
[cc lang=»bash»]for i in `seq 0 9`; do echo > /var/httpd/logs/error_log.$i;done[/cc]
а во FreeBSD делаем так: [cc lang=»bash»]for i in `jot 10 0`; do echo > /var/httpd/logs/error_log.$i;done[/cc]

» Запись из раздела Unix | 4 комментария

« предыдущая страницаследующая страница »