时间自适应压缩工具

bohdan_trotsenko

我正在询问将大文件复制到远程服务器的方案。

最简单的情况是:

tar c myfile | ssh myserver tar x

如果网络连接速度很快,那么一切都很好。

在较慢的网络上

tar c myfile | bzip2 -1 | ssh myserver tar xj

-使我的传输速度更快,但会浪费CPU时间。

当然,我可以使用压缩率,通常会尝试猜测正确的压缩率,以使我的CPU不会太忙并且网络处于饱和状态。

是否有一个压缩工具,或者会告诉压缩标志bzip2/ xz/ ...压缩,尽可能同时输出缓冲区忙?

库萨兰达
zstd --adapt

zstd压缩实用程序具有自适应压缩接通(在溶液中加入的选项的选项zstdv1.3.6)。这会将压缩调整为“当前感知的I / O条件”。

有关zstd更多信息,请参见手册。

完整的管道可能看起来像这样:

tar -c -f - source_directory |
zstd --adapt |
ssh user@server 'cd /someplace && { zstd -d | tar -x -f -;}'

或者

tar -c -f - source_directory |
zstd --adapt |
ssh user@server 'zstd -d | tar -x -C /someplace -f -'

如果添加-vzstd管道中的第一个,您将获得进度指示器行,内容如下:

(L7) Buffered :  32 MB - Consumed : 192 MB - Compressed :  72 MB => 37.50%

其中(L7)表示压缩级别。对于任何中等数量的数据,您都希望它会随时间波动,这表明它zstd确实适用于I / O条件(大概也适用于数据本身)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章