@Magi

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

Пробую запаковать вывод вот так
/usr/bin/mysqldump --opt -v --databases $bd_name -u$user -p$password | bzip2 -9 > backup-$(date +%d-%b-%Y).tar.bz2
Еще сюда нужно добавить шифрование.
Но почему-то результирующий файл потом не распаковывается. Подскажите, как правильно одной командой запаковать с шифрованием?
  • Вопрос задан
  • 650 просмотров
Пригласить эксперта
Ответы на вопрос 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 не работает.
Ответ написан
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы