如何一起使用mysqldump,pv和zip命令?

问题描述:

我想使用mysqldump从远程MySQL服务器获取表格,然后使用zip压缩此下载的文件。在下载时,我希望我可以使用pv查看进度。如何一起使用mysqldump,pv和zip命令?

我可以在一行命令中用|执行上述操作吗?

这些是我已经试过:

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

使用此命令的问题在于执行unzip my_database_my_table.sql.zip的时候,我得到了-作为输出文件的名称。我希望在执行zip命令时可以确定文件的名称。

是否可以设置充气文件的名称?

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

此命令给我mysqldump: Got errno 32 on write错误。

+0

我认为不可能的zip命令。这项工作,mysqldump -uuser_name -ppassword -hremote_address - 例程my_database my_table | pv | bzip2 -c> my_database_my_table.sql.bz2当然。 – abkrim

快速man zip显示您可以使用-O或--output-file指定输出名称。那应该是你的。

为了能够从pv中获得进展,它需要知道数据的完整大小。不幸的是,通过管道到mysqldump它没有那种数据。

我会建议先转储数据,然后再传输和恢复。

  1. 转储它。
  2. pv mysqldump.sql | zip > ~/mysqldump.sql.zip
  3. scp remotehost:/home/folder/mysqldump.sql ./
  4. 将它解压缩
  5. pv mysqldump.sql | mysql -u<dbuser> -p <dbname>