RSS
 

MySQL бекап

03 Янв

В связи с грядущим переносом моего блога  на другой сервер, вспомнилась маленькая мелочь: суточный бекап всех баз данных, лежащих на сервере MySQL на локальной машине. Для достижения цели используются: оболочка shell, утилита mysqldump и планировщик заданий cron.

Пишем коротенький скриптик:

#!/bin/sh
USERNAME=”root”
PASSWORD=”blablabla”
WDIR=”/System_Backup/mysql”
for base in db1 db2 db3 db4 db5 dbn
do
`/bin/mkdir -p $WDIR/$base`
`/bin/chmod 700 $WDIR/$base/`
`/usr/local/bin/mysqldump -u $USERNAME -p$PASSWORD -B $base > $WDIR/$base/backup_$base.sql`
`/usr/bin/gzip -cf9 $WDIR/$base/backup_$base.sql > $WDIR/$base/$base’_’$(date +%Y-%m-%d).gz`
`/bin/rm $WDIR/$base/*.sql`
`/bin/chmod -R o-rwx $WDIR`
done

— где:

* db1 db2 db3 db4 db5 и так далее — имена баз данных на MySQL сервере, подлежащие бекапу;
* USERNAME — имя пользователя, имеющего права доступа к упомянутым базам;
* PASSWORD — пароль пользователя USERNAME
* WDIR — рабочая директория, куда будут ложиться бекапы. У меня это смонтированная сетевая папка на другой машине.

Скрипт создает директорию для бекапа, далее выгребает бекап соответствующей базы, сжимает его с помощью gzip и
устанавливает соответсвующие права доступа на сжатый бекап. Ничего сложного. Далее скрипт попросту гоняется
кроном раз в сутки: 30 02 * * * root /root/scripts/mysql-backup.sh
Вот собственно и все.

 
Комментарии к записи MySQL бекап отключены

Рубрика: MySQL

 

Comments are closed.