Сжать Mysqldump, который SSH'd на другой машине - PullRequest
5 голосов
/ 14 сентября 2009

У меня есть следующее:

 mysqldump -u xxxx 
           -h localhost 
           --password=xxxxx databasename | 
           ssh username@00.000.00.202 "dd of=httpdocs/backup`date +'%Y-%m-%d-%H-%M-%S'`.sql"

... какой SSH является mysqldump для удаленной машины.

Мне нужно сжать mysqldump до того, как он станет SSH, так как дамп составляет 500 МБ, и он съедает мою пропускную способность.

Ответы [ 4 ]

10 голосов
/ 14 сентября 2009

mysqldump ... | gzip -9 | ssh ...

или

mysqldump ... | bzip2 -9 | ssh ...

или, если вы хотите, чтобы он был распакован на другом конце

mysqldump ... | bzip2 -9 | ssh machine "bzip2 -d >..."

mysqldump ... | gzip -9 | ssh machine "gzip -d >..."

7 голосов
/ 14 сентября 2009

Вы можете добавить флаг -C к вызову ssh для автоматического сжатия передаваемых данных.

2 голосов
/ 14 сентября 2009

Вам нужно вызвать gzip между mysqldump и ssh, например:

mysqldump [mysql options] | gzip | ssh [ssh options]

Я бы также порекомендовал изменить расширение сохраненного файла на ".sql.gz".

0 голосов
/ 14 сентября 2009

На это уже ответили и приняли, но я подумал, что вы могли бы найти эту интересную альтернативу.

Приложение Percona OpenSource xtrabackup будет выполнять сжатое (TAR) резервное копирование на лету - наряду со множеством других интересных вещей.

Не удалось найти привязку на странице, но прокрутите вниз до «Сжатые резервные копии».

...