Gzip 管道传输到 Rsync

我打算对数据进行 gzip 之类的操作,然后立即将其 rsync 到另一个 Web 服务器,这样生成的 gzip 文档就不会在区域服务器上创建。 我正在考虑做这样的事情但显然这停止工作。

gzip 文件|rsync - auv another_server

有人对此有任何概念吗? 或者这也是可行的吗?

5
2022-06-07 15:17:19
资源 分享
答案: 5

rsync 有一个 -z 选项,它肯定会传输压缩文件。 如果您打算这样做以加速传输,则需要使用 -z 而不是乱用 gzip。

2
2022-06-07 17:18:07
资源

在这种情况下,Rsync 可能不会提供任何优势,因为它发送的 Web 内容将是独一无二的。

按下数据并将输出发送到 STDOUT 非常简单:

gzip -c file > another-file

如果您正在搜索速率,并且可以控制两端,netcat 几乎没有开销。

在端口 1234 上设置要侦听的定位设备

[email protected]$ nc -l -p 1234 > file.gz

发送“file.gz”到设备 bar:1234

[email protected]$ gzip -c file | nc bar 1234
3
2022-06-07 15:50:35
资源

我的正常方法当然是使用 gzip 和 ssh,如下所示:

gzip - c 文档|ssh 个人 @remote.host "cat > destination.gz"

这将通过 ssh 将 zip 结果直接发送到远程主机上的文件“destination.gz”中。 如果您手动执行此操作,只需输入您的 ssh 密码; 如果您想立即执行此操作,则需要设置 ssh 密钥,类似于以下内容:

http://pkeck.myweb.uga.edu/ssh/

7
2022-06-07 15:49:34
资源

不要个人认为,但从您的询问和评论看来,您似乎不理解 rsync 的真正含义为了 . 除了将文件从一个位置重新定位到另一个位置之外——它是为了同步两地之间的数据。 如果您不想在区域设备上保留副本,那么您就没有集成,而且rsync也不是您想要的工具。

您正在尝试传输文件。 为此,您可以将它放在磁盘上并使用 ssh、ftp、sftp、ftps 等,或者您可以按照 Glenn 的建议使用 ssh 管道它,这是适当的响应以及正确的方法来做些什么你渴望。 如果您对源利用率感到困扰(并且对于高带宽链路也可以区分),然后更改密码:

gzip -c somefile | ssh -c blowfish [email protected] 'cat > someotherfile'

如果您尝试做某事(例如管道到 rsync)但它不起作用,那么您可能做错了,或者您可能正在尝试做错事。 这是任务工具的关注点,非常重要的是不要排除无论您尝试做什么,都有合适的设备。

了解并记住 UNIX 环境中提供的各种不同工具的目标肯定会让您更有效地利用和控制这种氛围。 许多工具在性能上有细微的差别或重叠,但除非你全神贯注,否则你会错过许多完成工作的最佳方法。

5
2022-06-07 15:45:51
资源

结合 gzip 和 rsync 不起作用。

如果您发送未压缩的文档,则 rsync 仅发送已更改的位。 但是,当您 gzip 文件时,每次生成的数据都会有很大的不同。 将其连接到 rsync 肯定最多可以达到与 ssh 相当的结果,甚至可能更糟。

每次压缩文件的因素都是不同的,这是因为它在压缩之前对信息进行了概要分析。 这意味着即使是文件中的一点点修改也可以在帐户中进行调整,从而影响压缩的每个字节。

1
2022-06-07 15:45:31
资源