小编Mic*_*ael的帖子

为什么 rsync 不对网络上的单个文件使用增量传输?

我看过这个问题这个问题,但它们似乎没有解决我看到的症状。

我有一个很大的日志文件(大约 600 MB),我试图通过蜂窝网络传输它。因为它是一个日志文件,所以它只是附加到(虽然它实际上是在一个 SQLite 数据库中,只执行了 INSERT,所以它并不那么简单,但除了最后 4k 页(或者可能是一个很少)文件每次都是相同的。重要的是只有更改(以及需要传输的任何校验和)实际发送,因为数据连接是计量的。

然而,当我通过未计量的连接(例如免费 wifi 热点)执行测试时,我没有看到观察到或报告的数据传输加速或减少。通过慢速 WiFi 连接,我看到大约 1MB/s 或更少,报告传输将需要近 20 分钟。通过快速的 WiFi 连接,我看到了统一的更快速度,但没有关于加速的报告,第二次尝试传输(现在应该更快,因为两个文件相同)现在确实显示出任何差异。

我正在使用的(经过消毒以删除敏感信息)命令是:

rsync 'ssh -p 9999' --progress LogFile michael@my.host.zzz:/home/michael/logs/LogFile
Run Code Online (Sandbox Code Playgroud)

我最后得到的输出如下所示:

LogFile
    640,856,064 100%   21.25MB/s   0:00:28 (xfr$1, to-chk=0/1)
Run Code Online (Sandbox Code Playgroud)

没有提到任何类型的加速。

我怀疑问题可能是以下之一:

  • 我缺少一些命令行选项。但是,重新阅读手册页似乎表明默认启用增量传输:我只看到禁用它们的选项。
  • 由于服务器位于仅允许 ssh 的防火墙后面,我在 ssh 上使用 rsync(甚至在非标准端口上)。不过,我没有看到任何明确说明如果 rsync 守护程序未运行,增量传输将不起作用的内容。我尝试使用“::”表示法而不是“:”,但手册页对“模块”是什么不是很清楚,并且我的命令因指定无效模块而被拒绝。

我排除了以下情况:

  • 不在本地网络上执行的增量传输。排除,因为我正在尝试通过 Internet 执行传输
  • 校验和计算造成的开销。我在快速和慢速 Wifi 连接上都看到过这种行为,而且传输速率似乎不受计算限制。

rsync

15
推荐指数
1
解决办法
3725
查看次数

安全地自动化需要密钥来完成其任务的脚本

我有一个脚本可以下载银行交易以存储在数据库中。要获得这些交易,每个帐户都需要一个密码。数据库是加密的,需要一个密钥才能访问它。所有这些密钥和密码本身都是加密的,需要一个主密钥才能检索。该脚本提示输入主密钥,使用它来检索所有必要的密码和密钥,然后执行其工作。

现在正在手动调用此脚本。除了保护主密钥的部分外,让它定期运行很容易。简单地将它以明文形式存储在文件中似乎不太安全,因为任何设法获得文件读取权限的人现在都可以广泛访问许多敏感信息。以脚本拥有的方式存储它(例如在脚本调用的二进制文件中混淆它)也不起作用,因为任何可以执行脚本的人都会在那里有一个攻击向量。

我读过这个问题,答案似乎是“将其存储在文件中”,并添加了建议不是纯文本的注释。但即使密码不是纯文本,似乎我们仍然需要与脚本沟通如何以某种方式读取文件,例如解密密钥或其他东西,我们又回到了原点。

security scripting password

5
推荐指数
1
解决办法
1547
查看次数

rsync 排除空文件

我最近发现卷上的一些文件被神秘地截断了 - 或者更准确地说,被零长度文件替换。

幸运的是,这些文件是从多个地方硬链接的,实际上只有大约一半的链接被一个看似相同属性的零长度文件覆盖。

但是,当我查看备份时,发现问题发生在我之前的备份之前。对于有问题的卷,一个简单的镜像备份就足够了,因为文件不应被删除——它主要是附加的。但由于该文件实际上并没有被删除,我不能简单地告诉rsync不要删除。

有没有办法告诉rsync不同步本地长度为零但远程长度非零的文件?

我当然可以简单地编写一些代码来查找零长度文件并排除它们,但这是一个额外的耗时步骤(现在对文件系统进行两次完整扫描)并且它可以排除合法应该同步的文件(在如果存在预期长度为零的文件)。

rsync

4
推荐指数
1
解决办法
4226
查看次数

标签 统计

rsync ×2

password ×1

scripting ×1

security ×1