如何压缩这个mysqldump?

Mic*_*ers 1 shell-scripting

我有这个脚本,它可以工作,但输出没有压缩,所以它很大。我想把它压缩保存,但我不明白 shell 脚本,我不想把它搞砸。你能帮我把它压缩成这样:“.sql.zip”吗?

/usr/bin/mysqldump -h $mysql_host -u $mysql_username -p$mysql_password $mysql_database > $backup_path/$today/$mysql_database-`date +%H%M`.sql
Run Code Online (Sandbox Code Playgroud)

任何帮助表示赞赏。

小智 15

我认为你可以这样做。

/usr/bin/mysqldump -h $mysql_host -u $mysql_username -p$mysql_password $mysql_database | gzip -9 -c > $backup_path/$today/$mysql_database-`date +%H%M`.sql.gz
Run Code Online (Sandbox Code Playgroud)


Ber*_*ert 6

只需“管道输出”到 gzip

命令会变成这样:

 /usr/bin/mysqldump -h $mysql_host -u $mysql_username -p$mysql_password $mysql_database | gzip > $backup_path/$today/$mysql_database-`date +%H%M`.sql.gz
Run Code Online (Sandbox Code Playgroud)


Rya*_*hin 5

您可以通过gzip(或bzip2pbzip2xz等)对其进行管道传输,如下所示:

/usr/bin/mysqldump -h $mysql_host -u $mysql_username -p$mysql_password $mysql_database | gzip -c > $backup_path/$today/$mysql_database-`date +%H%M`.sql.gz
Run Code Online (Sandbox Code Playgroud)

zip不是此作业的最佳工具,因为它将数据作为文件存储在存档中(如 tar + gzip),而其他工具只是压缩数据。

mysqldump ( mysqldump -C) 还支持压缩通信,这也许可以使网络上的数据传输更快。

  • @MichaelRogers `gzip` 和 `gzip -c` 是相同的。gzip -9 会更慢并导致 CPU 使用率更高(默认为 -6),但会导致更高的压缩比。我建议使用替代压缩实用程序,特别是“pbzip2”(一种线程 bzip2),因为压缩大型流可能会消耗 100% 的 CPU 核心,并可能成为瓶颈。gzip 是 Linux 最常见(标准?)的压缩实用程序,这可能是每个人都推荐它的原因,但它不是最快或“最好”的。一些新算法,例如 xz 和 lz4(还有一些)旨在更快。 (4认同)