MySQL Dump для tar.gz с удаленного доступа без оболочки - PullRequest
4 голосов
/ 27 января 2011

Я пытаюсь получить дамп из MySQL для моего локального клиента.Это то, что у меня сейчас есть:

mysqldump -u $MyUSER -h $MyHOST -p$MyPASS $db | gunzip -9 > $FILE

Что я хочу, так это .tar.gz вместо архивного файла.У меня есть доступ к оболочке на локальном клиенте, но не на сервере.Итак, я не могу сделать удаленный tar и скопировать его сюда.Итак, есть ли способ передать gzip в tar.gz.(В настоящее время .gz не распознается как архив tar.)

Спасибо.

Ответы [ 4 ]

7 голосов
/ 27 января 2011

Если вы выполняете указанную выше команду на стороне клиента, ваше сжатие выполняется на стороне клиента.mysqldump подключается к удаленному серверу и загружает данные без какого-либо сжатия.

mysqldump -u $MyUSER -h $MyHOST -p$MyPASS $db > filename
tar cfz filename.tar.gz filename
rm filename

Возможно, у некоторых гуру Unix будет один лайнер для этого.

3 голосов
/ 27 января 2011

Нет.Файлы (да, множественное число, поскольку tar обычно используется для более чем одного файла) сначала помещаются в архив tar, а затем , а затем , который сжимается.Если вы пытаетесь использовать инструмент командной строки tar, вам нужно сохранить результат во временном файле, а затем сохранить его.

Лично я бы предпочел ударить другую сторону с помощью cluebat.

2 голосов
/ 27 января 2011

mysqldump -u $MyUSER -h $MyHOST -p$MyPASS $db | tar -zcvf $FILE -

Где $ FILE - ваше имя файла.tar.gz

1 голос
/ 24 марта 2014

Архивная резервная копия и переименована по времени и дате:

/usr/bin/mysqldump -u $MyUSER -h $MyHOST -p$MyPASS $db | gzip -c > /home/backup_`/bin/date +"\%Y-\%m-\%d_\%H:\%M"`.gz
...