【问题标题】:Compress a Mysqldump that is SSH'd to another machine将通过 SSH 连接的 Mysqldump 压缩到另一台机器
【发布时间】:2010-11-28 03:45:50
【问题描述】:

我有以下几点:

 mysqldump -u xxxx 
           -h localhost 
           --password=xxxxx databasename | 
           ssh username@00.000.00.202 "dd of=httpdocs/backup`date +'%Y-%m-%d-%H-%M-%S'`.sql"

...哪个 SSH 是远程机器的 mysqldump。

我需要在 SSH 之前压缩 mysqldump,因为转储是 500mb,它占用了我的带宽限额。

【问题讨论】:

    标签: bash optimization shell ssh mysqldump


    【解决方案1】:

    mysqldump ... | gzip -9 | ssh ...

    mysqldump ... | bzip2 -9 | ssh ...

    或者,如果您希望它在另一端未压缩

    mysqldump ... | bzip2 -9 | ssh machine "bzip2 -d >..."

    mysqldump ... | gzip -9 | ssh machine "gzip -d >..."

    【讨论】:

      【解决方案2】:

      您可以将-C 标志添加到ssh 调用以自动压缩传输的数据。

      【讨论】:

      • 这很有趣,我只想快速压缩文件。
      • 不过,这将是一个压缩笑话。
      • @hacker:有什么特别的原因你认为这种压缩不够好?只是你更喜欢 gzip 的 -9 标志?
      • sth,实际上,如果我想节省带宽,我更喜欢 bzip2 的 -9 ;-)(无论如何,您可以将 gipz 级别指定为 ssh),但这不是我的意思。现在回想起来,我不确定我是否是对的,无论如何。但我的猜测是 ssh 会以较短的块进行压缩 - 否则它的响应速度不会是它的一半。并且以小块进行压缩当然会阻止它有效地压缩流。如果你真的知道你在说什么,我很想知道我在这里错了(如果我错了)。
      【解决方案3】:

      你需要在mysqldump和ssh之间调用gzip,比如:

      mysqldump [mysql options] | gzip | ssh [ssh options]
      

      我建议将保存的文件扩展名也更改为“.sql.gz”。

      【讨论】:

      • 那么应该是.sql.gz——最后的最外层封装。
      • 很好,我不小心打错了。固定。
      【解决方案4】:

      这已经被回答和接受了,但我想你可能会发现这是一个有趣的选择。

      Percona 的 OpenSource xtrabackup 应用程序将即时执行压缩 (TAR) 备份 - 以及许多其他有趣的事情。

      我在页面上找不到锚点,但向下滚动到“压缩备份”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-03-31
        • 1970-01-01
        • 2018-06-29
        • 2018-12-11
        • 1970-01-01
        • 1970-01-01
        • 2017-02-22
        • 1970-01-01
        相关资源
        最近更新 更多