如何一起使用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
错误。
答
快速man zip
显示您可以使用-O或--output-file指定输出名称。那应该是你的。
答
为了能够从pv
中获得进展,它需要知道数据的完整大小。不幸的是,通过管道到mysqldump
它没有那种数据。
我会建议先转储数据,然后再传输和恢复。
- 转储它。
pv mysqldump.sql | zip > ~/mysqldump.sql.zip
scp remotehost:/home/folder/mysqldump.sql ./
- 将它解压缩
pv mysqldump.sql | mysql -u<dbuser> -p <dbname>
我认为不可能的zip命令。这项工作,mysqldump -uuser_name -ppassword -hremote_address - 例程my_database my_table | pv | bzip2 -c> my_database_my_table.sql.bz2当然。 – abkrim