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

时间:2016-04-26 10:05:50

标签: linux zip mysqldump progress

我想使用mysqldump从远程MySQL服务器获取表,然后使用zip压缩下载的文件。下载时,我希望我可以使用pv查看进度。

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

这些是我尝试过的:

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错误。

3 个答案:

答案 0 :(得分:1)

这是我一起使用它们的方式:

mysqldump -u db_user -pdb_password db_name| pv | zip > backup.zip

如果有人感兴趣,这里是https://stackoverflow.com/a/50985546/3778130全自动备份脚本。

希望它可以帮助某人。

答案 1 :(得分:0)

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

答案 2 :(得分:0)

为了能够从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>