Created
February 5, 2020 06:29
-
-
Save dyp2000/c703bce411e883d971ea5546fca5a57f to your computer and use it in GitHub Desktop.
Резервное копирование MySQL баз данных. Универсальный скрипт.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
echo "Резервное копирование БД mySQL. Версия 1.0 (20201229)" | |
echo "Автор: Денис Парыгин (dyp2000@mail.ru)" | |
echo "" | |
read -p "Укажите путь к архиву: " dest | |
read -p "Имя базы данных: " database | |
read -p "Имя пользователя для БД $database: " user | |
read -sp 'Пароль: ' password | |
echo "" | |
now=$(date +%Y-%m-%d_%H%M%S) | |
filename=$dest/$database/$database\_$now | |
mkdir -p $dest/$database | |
echo "Файл архива БД [$database] будет сохранен в $filename" | |
db_size=$(mysql -u"$user" -p"$password" \ | |
--silent --skip-column-names \ | |
-e "SELECT COALESCE(ROUND(SUM(data_length)/1024/1024, 0), 0) \ | |
FROM information_schema.TABLES \ | |
WHERE table_schema='$database';") | |
echo "Размер базы данных $db_size Мб" | |
echo "Копирование базы данных..." | |
float=`echo "$db_size-$db_size*0.23" | bc` | |
real_size=${float/.*} | |
mysqldump -u"$user" -p"$password" $database -C -c -e \ | |
--compress | pv -b -r -e --progress --size "$real_size"m > $filename.sql | |
echo "Упаковка базы данных..." | |
pv $filename.sql | pbzip2 -9 > $filename.zip | |
rm -f $filename.sql | |
echo "Для распаковки архива используйте pbunzip2" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment