Задать вопрос
@Magi

Как правильно запаковать с шифрованием вывод mysqldump?

Пробую запаковать вывод вот так
/usr/bin/mysqldump --opt -v --databases $bd_name -u$user -p$password | bzip2 -9 > backup-$(date +%d-%b-%Y).tar.bz2
Еще сюда нужно добавить шифрование.
Но почему-то результирующий файл потом не распаковывается. Подскажите, как правильно одной командой запаковать с шифрованием?
  • Вопрос задан
  • 661 просмотр
Подписаться 2 Оценить Комментировать
Пригласить эксперта
Ответы на вопрос 2
fox_12
@fox_12
Расставляю биты, управляю заряженными частицами
Запаковываем:
$ mysqldump --opt -usome_user -psome_pass mysql | openssl enc -aes-256-cbc | bzip2 -9 > backup.bz2
enter aes-256-cbc encryption password:mysqldump: 
[Warning] Using a password on the command line interface can be insecure.

Verifying - enter aes-256-cbc encryption password:


Смотрим че там запаковали:
$ bzip2 -d backup.bz2 
$ head backup
Salted__????,?z"?1f????	9???>?>??n??q?/?{,??}E2'4*W?e?,+N???
????i??"??Lc[?-??Io?`??3???%fnXf????s??5A<?hz?}...


распаковываем с расшифрованием:
$ bzip2 -d -c backup.bz2 | openssl enc -aes-256-cbc -d > out.sql
enter aes-256-cbc decryption password:


Проверяем результат:
$ head out.sql 
-- MySQL dump 10.13  Distrib 5.7.10, for osx10.11 (x86_64)
--
-- Host: localhost    Database: mysql
-- ------------------------------------------------------
-- Server version	5.7.10

/*!40101 SET @OLD_CHARACTER_SET_CLIENT=@@CHARACTER_SET_CLIENT */;
/*!40101 SET @OLD_CHARACTER_SET_RESULTS=@@CHARACTER_SET_RESULTS */;
/*!40101 SET @OLD_COLLATION_CONNECTION=@@COLLATION_CONNECTION */;
/*!40101 SET NAMES utf8 */;
Ответ написан
Комментировать
@Magi Автор вопроса
Попробовал, работает, но сжатый файл 4990492 байт, распакованный 4967569. Похоже bzip2 не работает.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы