Обычно после сброса базы данных MySQL с помощью mysqldump
команды я немедленно выполняю tar / gzip результирующего файла. Я ищу способ сделать это в одной команде:
Итак, из этого:
mysqldump dbname -u root -p > dbname.sql
tar czvf dbname.sql.tgz dbname.sql
rm dbname.sql
Чтобы что-то вроде этого:
mysqldump dbname -u root -p > some wizardry > dbname.sql.tgz
Или даже лучше (поскольку я обычно копирую файл дампа на другой сервер):
mysqldump dbname -u root -p > send dbname.sql.tgz to user@host
Я использую bash на Debian.
mysqldump | tar cf - | gzip -c | ssh ... 'cat > file.tgz'
mysqldump --opt <database> | gzip -c | cat > $(date +%Y-%m-%d-%H.%M.%S).sql.gz
gzip -c > $(date +%Y-%m-%d-%H.%M.%S).sql.gz
netcat
вместо пайпинга ssh. Вы немного сэкономите на издержках шифрования ssh, если он передается по защищенной сети (или вас не волнует безопасность). В настоящее время вы также можете рассмотреть возможность использованияxz
вместоgzip
.Если вы выполняете это локально, просто используйте следующую команду для резервного копирования вашей базы данных и архивирования ее с помощью gzip:
(Изменить: исправлен ключ -c)
источник
gzip -c
, верно?Используйте именованную трубу.
Я использую это все время, это круто.
http://en.wikipedia.org/wiki/Named_pipe
источник
mkfifo mysql_pipe; gzip -9 -c < mysql_pipe > name_of_dump.gz &; mysqldump database > mysql_pipe; rm mysql_pipe
там одна строка. Конечно, я бы держал трубку и использовал ее каждый раз.Я написал быстрый скрипт для удаления удаленной базы данных MySQL. Он использует сжатие mysql, gzip и ssh. Всасывал базу данных в несколько ГБ с невероятной скоростью.
Дополнительным преимуществом является то, что для него не требуется свободного места на исходном сервере баз данных, поэтому вы можете использовать его для резервного копирования базы данных на сервере с нулевым свободным дисковым пространством, прежде чем приступать к удалению данных.
Надеюсь, это кому-нибудь поможет.
источник
Используйте
pv
и следите за скоростью!Или, если вы знаете размер (3 ГБ), получите точную оценку:
источник
Попробуй это:
Пожалуйста, заметьте, что я ни в чем не разбираюсь, я просто объединил 2 варианта в Интернете в один.
Вполне может быть, лучше чем-то другим, но это одна строка, которая мне подходит.
Однако его необходимо
ssh.keys
установить и принять, если вы хотите использовать его в сценарияхcrontab
или тому подобное.источник
Вы можете сделать как:
mysqldump --add-drop-table -h dbhost -u dbuser -p dbname (tablename tablename ... ) | gzip -c > wp.sql.gz
например
mysqldump --add-drop-table -h localhost -u root -p wordpress | gzip -c > wp.sql.gz
источник
Я работал над этим bash-скриптом ниже, который пытается собрать воедино все полезные советы, которые я видел, когда дело доходит до дампа / восстановления с помощью mysql. Он ориентирован на удаленные операции.
Просто перенастройте Vars и попробуйте. :)
Особенности:
Что нуждается в улучшении:
Я делюсь этим сценарием здесь, надеясь, что он может быть улучшен сообществом. (лучше всего смотреть с нано или другим редактором, который раскрашивает код)
--------------------------------- отрезать здесь --------------- -------------------
источник
Вы также можете сохранить свой пароль в конфигурационном файле и использовать эту опцию --defaults-extra-file:
Файл конфигурации может выглядеть так:
источник