Bash-скрипты бекапа баз данных MariaDB и Bash-скрипт массового восстановления из бекапа.

test
Решил выложить пару скриптов с помощью которых работаю делаю бекап и восстановление из него. Все просто до безобразия, но мало ли, может кому пригодиться.

Скрипт создания бекапа

Создает папку с названием - текущей датой и все базы данных складывает в файл.
Изначально создадим файл mysqlbackup.sh с содержимым:
#!/bin/bash
dbpass="pass"
DATE_DIR=$(date +%Y-%m-%d-%H)
mkdir /home/nelex/MySQL_BKP/${DATE_DIR}
for dbname in `echo show databases| mysql -u root -p$dbpass`; do
echo "Dump $dbname..."
mysqldump -u root -p$dbpass $dbname > "~/MySQL_BKP/${DATE_DIR}/$dbname.sql"
Создадим и папку в которую будет складываться бекап и делаем скрипт исполняемым::
mkdir ~/MySQL_BKP
chmod +x mysqlbackup.sh

Массовое создание баз данных из sql файлов и их импорт.

Понадобилось мне залить сразу несколько баз данных, и чтобы не делать это все руками я написал этот небольшой скрипт.
Скрипт берет указанную в первом параметре папку и из нее проходит по каждому SQL файлу, создает базу с названием файла без ".sql" и загоняет файл в нее. Все просто:
#!/bin/bash
indir=$1
dblogin="root"
dbpass="pass"
postfix=".sql"
prefix="./"
cd $indir
for file in `find ./ -type f -name "*$postfix"`
do
    table_tmp=${file%$postfix}
    table_tmp=${table_tmp#$prefix}
    table=${table_tmp,,}
    mysql -u$dblogin -p$dbpass -e "create database $table default charset utf8"
    mysql -u$dblogin -p$dbpass $table < $file
Делаем файл исполняемым:
chmod +x mysqlbackup.sh
Не забываем что наш скрипт бекапа создает и таблицы используемые самой СуБД, так что если вам они не нужны, удалите/переместите их.
Таким образом запускаем файл:
import_from_dir.sh ~/MySQL_BKP/2015-06-02-14

Вот и все.
Категория: 
Share/Save

Делитесь с друзьями в социальных сетях! Оставляйте комментарии!

Share/Save

Это Вам так же может быть интересно!