Мой небольшой скрипт, который переходит у меня по наследству с сервера на сервер.
1. Бекап mysql.
Бекап будет жить в «/opt/backup/mysql/» папки с именами баз создаются автоматически. В зависимости от целей и размеров базы, необходимо решить, как мы будем бекапиться:
«month day» — создаст архивы с затиркой по дням месяца
«week day» — создаст архивы по дням недели.
#!/bin/sh mysqldump="mysqldump" mysqlparam="-u <user_from_backup> -p<password_from_backup>" bzip2="bzip2" mysqlcheck -Ao ${mysqlparam} databases=`echo "show databases" | mysql ${mysqlparam} | grep -v "^D"` dstdir="/opt/backup/mysql/" # back it up for dbs in $databases do mkdir ${dstdir}/$dbs #month day mysqldump $mysqlparam $dbs | gzip > ${dstdir}/$dbs/`date +%d.$dbs.sql`.gz #week day #mysqldump $mysqlparam $dbs | gzip > ${dstdir}/$dbs/`date +%u.$dbs.sql`.gz done
Восстановление из бекапа:
Дописываем в начало выгрузки строчку CREATE DATABASE IF NOT EXISTS `mydatabase`; mysql -u <user_from_backup> -p < sql_file.sql В приглашении вводит пароль. Или если у нас архив: gunzip -c дамп.gzip | mysql -u <user_from_backup> -p