我正在询问将大文件复制到远程服务器的方案。
最简单的情况是:
tar c myfile | ssh myserver tar x
如果网络连接速度很快,那么一切都很好。
在较慢的网络上
tar c myfile | bzip2 -1 | ssh myserver tar xj
-使我的传输速度更快,但会浪费CPU时间。
当然,我可以使用压缩率,通常会尝试猜测正确的压缩率,以使我的CPU不会太忙并且网络处于饱和状态。
是否有一个压缩工具,或者会告诉压缩标志bzip2
/ xz
/ ...压缩,尽可能同时输出缓冲区忙?
zstd --adapt
该zstd
压缩实用程序具有自适应压缩接通(在溶液中加入的选项的选项zstd
v1.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 -'
如果添加-v
到zstd
管道中的第一个,您将获得进度指示器行,内容如下:
(L7) Buffered : 32 MB - Consumed : 192 MB - Compressed : 72 MB => 37.50%
其中(L7)
表示压缩级别。对于任何中等数量的数据,您都希望它会随时间波动,这表明它zstd
确实适用于I / O条件(大概也适用于数据本身)。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句