Как создать резервную копию всех баз данных в контейнере MySQL

cat databases.txt | while read db; do docker exec $container_name bash -c "mysqldump -uroot -p\$MYSQL_ROOT_PASSWORD ${db}" | gzip -9 > $HOME/backups/${db}_`date +%Y%m%d_%H%M%S`.sql.gz; done


Команда cat databases.txt | while read db; do docker exec $container_name bash -c «mysqldump -uroot -p\$mysql_root_password ${db}» | gzip -9 > $home/backups/${db}_date +%y%m%d_%h%m%s.sql.gz; done выполняет следующие действия:
1. Команда cat databases.txt читает содержимое файла databases.txt.
2. В цикле while read db; выполняется чтение каждой строки из файла databases.txt и присваивается переменной db.
3. Далее выполняется команда docker exec $container_name bash -c «mysqldump -uroot -p\$mysql_root_password ${db}», которая выполняет резервное копирование базы данных с использованием утилиты mysqldump в контейнере mysql. Аргументы -uroot и -p\$mysql_root_password указывают на имя пользователя и пароль для подключения к базе данных.
4. Результат команды mysqldump передается в утилиту gzip, которая сжимает данный с помощью алгоритма сжатия уровня 9 и сохраняет в файл в формате .sql.gz.
5. Файл с резервной копией сохраняется в папке $home/backups с именем вида ${db}_date +%y%m%d_%h%m%s.sql.gz, где ${db} — имя базы данных, а date +%y%m%d_%h%m%s — текущая дата и время в формате YYMMDD_HHMMSS.
Эта команда полезна для создания резервной копии всех баз данных в контейнере mysql. Она позволяет автоматизировать процесс создания копий данных и сохранить их в удобном формате для последующего восстановления при необходимости. Возможной альтернативой может быть использование специализированных инструментов для создания резервных копий и восстановления данных в MySQL, таких как mysqldump или программы резервного копирования сторонних производителей. Команда принимает один аргумент, именно путь к файлу databases.txt, в котором перечислены имена баз данных, для которых требуется создать резервные копии.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *