2016-04-26 32 views
0

我想使用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

回答

0

快速man zip顯示您可以使用-O或--output-file指定輸出名稱。那應該是你的。

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>