2016-04-26 15 views
0

Ich möchte mysqldump verwenden, um eine Tabelle von einem Remote-MySQL-Server zu erhalten, dann komprimiere diese heruntergeladene Datei mit zip. Während des Downloads möchte ich, dass ich den Fortschritt unter Verwendung von pv anzeigen kann.Wie verwende ich mysqldump, pv und zip zusammen?

Kann ich die oben genannten Dinge mit | in einer Befehlszeile tun?

Diese sind, was ich versucht habe:

mysqldump -uuser_name -ppassword -hremote_address --routines my_database my_table | pv | zip > my_database_my_table.sql.zip 

Das Problem mit diesem Befehl das ist, wenn unzip my_database_my_table.sql.zip ausgeführt wird, ich - wie der Name der Ausgabedatei einsehen. Ich wünschte, ich könnte den Namen der Datei feststellen, wenn ich zip Befehl ausführen.

Ist es möglich, den Namen der aufgeblähten Datei festzulegen?

mysqldump -uuser_name -ppassword -hremote_address --routines my_database my_table | pv | zip my_database_my_table.sql > my_database_my_table.sql.zip 

Dieser Befehl gibt mir mysqldump: Got errno 32 on write Fehler.

+0

ich mit zip-Befehl nicht für möglich halten. Diese Arbeit, mysqldump -uuser_name -passassword -hremote_address --routine my_database my_table | pv | bzip2 -c> my_database_my_table.sql.bz2 sicher. – abkrim

Antwort

0

Eine schnelle man zip zeigt, dass Sie -O oder --output-Datei verwenden können, um den Ausgabenamen anzugeben. Das sollte dich tun.

0

Um den Fortschritt von pv zu bekommen, muss es die volle Größe der Daten kennen. Leider, indem es es an mysqldump leitet, hat es nicht diese Art von Daten.

Ich würde empfehlen, die Daten zuerst auszugeben und später zu übertragen und wiederherzustellen.

  1. Dump es.
  2. pv mysqldump.sql | zip > ~/mysqldump.sql.zip
  3. scp remotehost:/home/folder/mysqldump.sql ./
  4. entpacken
  5. pv mysqldump.sql | mysql -u<dbuser> -p <dbname>