标签: rsync

同步非常大的文件夹结构

我们的 Intranet 上有一个文件夹结构,其中包含大约 800,000 个文件,分为大约 4,000 个文件夹。我们需要将其同步到我们 DMZ 中的一小部分机器。结构的深度非常浅(它永远不会超过两层深)。

大多数文件永远不会改变,每天有几千个更新文件和 1-2000 个新文件。数据是在源数据已被清除的地方维护的历史报告数据(即,这些是源数据足够旧以至于我们存档和删除它的最终报告)。每天同步一次就足够了,因为它可以在合理的时间范围内发生。报告是在一夜之间生成的,我们早上第一件事就是同步作为计划任务。

显然,由于很少有文件定期更改,我们可以从增量复制中受益匪浅。我们已经尝试过 Rsync,但是仅仅完成“构建文件列表”操作就可能需要长达八到十二个小时的时间。很明显,我们正在迅速超越 rsync 的能力(12 小时的时间框架太长了)。

我们一直在使用另一个名为 RepliWeb 的工具来同步结构,它可以在大约 45 分钟内完成增量传输。然而,我们似乎已经超出了它的限制,它已经开始看到文件显示为删除,而实际上它们不是(也许某些内部内存结构已经耗尽,我们不确定)。

有没有其他人遇到过这种大规模的同步项目?是否有设计用于处理像这样的大量文件结构以进行同步?

backup synchronization rsync unison

15
推荐指数
2
解决办法
9337
查看次数

RSYNC 如何做增量备份

如何rsync知道哪些文件已更改,哪些未更改?它是否将其数据记录在文件中的任何位置?

因为我想做增量备份,但首先它会传输所有文件。

所以我的主要问题是:如果我通过 FTP 而不是通过rsync. 请问rsync仍然跳过那些已存在的文件,否则将上载在第一次运行的一切。

backup rsync sftp

15
推荐指数
4
解决办法
3万
查看次数

为什么我的 rsync 与纯 cp 甚至 scp 相比如此慢?

我通过安装份额(份额被安装在Linux文件transfering到Windows 7视窗的Linux)..我复制大量数据(即近TB)从旧到新机器上我的局域网内. 我已经很不幸了,我只有 100MBit。自然地,我盲目地使用了 rsync,但在一天后已经想知道为什么它感觉如此缓慢。启用进度表显示我的传输速率约为 2MB/s 。

所以我拿了一个合理的大文件(800MB)并跟踪传输时间(1):

cp : 05:33
scp (2): 06:33
rsync : 21:51
Run Code Online (Sandbox Code Playgroud)

1) 我删除了每次运行之间的文件
2) 通过 localhost scp 到同一台 Linux 机器直接到共享;完全没用,但提供了一个进度表

测试很简单

(cp|scp|rsync) <source> <destination>
Run Code Online (Sandbox Code Playgroud)

除了 scp 的主机/端口外,没有特殊参数。我什至尝试-W切换 rsync 但十分钟后取消。rsync 是在 Lenny 上运行的 3.0.3。能够随时中断复制过程并恢复使我使用 rsync,但现在我认为我真的需要重新考虑这个要求。

怎么可能有这么大的差别?

更新/解决:

感谢rschuler,我能够解决这个问题:出于效率原因,使用 rsync 守护进程而不是 smb 挂载。所说的 DeltaCopy 有效,但必须注意一些事项

  • 这是一个很好的 GUI 包装器,但如果出现问题,最好知道如何修复它。似乎我第一次输入了我的用户凭据,在该凭据下运行 rsync 服务是错误的,但是 GUI 不允许我设置新的凭据。我发现它作为服务运行并且能够在那里设置正确的凭据
  • 需要手动将端口添加到防火墙以允许连接
  • 个人品味:确保共享受密码保护,如果没有,请确保服务不会自动启动 Windows;以防万一
  • 包装的 rsync 二进制文件不是本地 Windows 端口,而是构建在 cygwin 上。但是,包含的 cygwin DLL 不能正确处理 UTF8 和损坏的非 ascii …

performance rsync

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

让 rsync 将文件从源移动到目标?

rsync 是我项目的好选择吗?

我必须:
- 通过 SSH 将文件从源文件夹复制到目标文件夹,
- 确保所有文件都已复制,
-复制后删除源文件。
- 如果我有冲突名称,我必须重命名文件。

看起来我可以使用选项:--remove-source-files(删除源文件)
但是rsync如何管理冲突,我可以有规则吗?

我的项目中的用例:

我在服务器 A 上运行科学计算并将结果插入文件夹“process”中,对于每个计算,我都有一个这样的存储库:/process/calc1。
现在我想将存储库“/calc1”传输到服务器 B(我得到 /process/calc1),并从服务器 A 中删除“calc1”
。...在另一次计算中,我在服务器 A 上得到“/process/calc2”,这个想法也是将“calc2”移动到服务器 B 上的“/process/”目录中,然后我现在在服务器 B 上:
- /process/calc1
- /process/calc2
(并且服务器 A 上的 /process/ 是空的)。

如果在新计算后在服务器 A 中有另一个像“/process/calc1”这样的文件夹(如果服务器 B 上已经存在“/process/calc1”),rsync 将如何管理冲突(在服务器 B 上)?

是否可以使用 rsync 添加规则,并在服务器 B 中通过“process/calc1R2”重命名“/process/calc1”?依此类推(例如:calc1R3)?

谢谢。

linux unix rsync file-transfer

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

使用 rsync 进行复杂的包含/排除

我正在尝试制定 rsync 过滤器语法来执行复杂的包含/排除,并尝试实现以下目标:

Include /
Exclude /home
Include /home/user1/*
Include /home/user2/subdir/*
Run Code Online (Sandbox Code Playgroud)

我在过滤器语法上尝试了许多变体,尽管多次阅读手册页,但我无法获得这种效果。Rsync 过滤器似乎非常强大,我很难相信它们无法处理诸如此类的常见情况。

rsync

15
推荐指数
2
解决办法
3万
查看次数

对于大文件,先压缩再传输还是 rsync -z?哪个最快?

我有大量的相对性小数据文件,但它们占用了大约 50 GB,我需要将它们转移到另一台机器上。我试图想出最有效的方法来做到这一点。

我的想法是 gzip 整个事情,然后 rsync 它并解压缩它,依靠 rsync -z 进行压缩,gzip 然后使用 rsync -z。我不确定哪个最有效,因为我不确定 rsync -z 是如何实现的。关于哪个选项最快的任何想法?

backup compression rsync

15
推荐指数
3
解决办法
4万
查看次数

为什么要两边都安装rsync才能工作?

这可能是一个愚蠢的问题,但我想保持我的一些服务器干净并且不想安装任何其他软件。

但我一直认为 rsync 会通过 SSH 复制数据并且不需要远程端的 rsync ?

/usr/bin/rsync -a --delete --numeric-ids --relative --delete-excluded     --rsh=/usr/bin/ssh root@server01:/etc /.snapshot/hourly.0/server01
rsync: command not found
Run Code Online (Sandbox Code Playgroud)

ssh rsync

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

如何防止 rsync 用目标目录层次结构中的新目录替换符号链接?

我正在使用rsync(1)在源区域和目标区域之间同步文件,其中目标目录层次结构包含符号链接。

当源目录与目标区域中的符号链接具有相同的名称和相对路径时,rsync 会复制的源目录及其所有内容替换符号链接。我希望 rsync 保持符号链接完好无损,并且只复制如果符号链接是真正的目录就会被复制的文件。

我目前正在使用-Cvrtprsync 选项。我知道这个--links选项,但这似乎只与源区域中的符号链接有关。

有没有办法通过 rsync 获得我正在寻找的行为?

rsync symbolic-link

14
推荐指数
1
解决办法
8086
查看次数

io.c 中的 rsync 错误无法解释的错误(代码 255)

我正在使用脚本在sudo crontab. 该脚本执行 2 路 rsync(从 serverA 到 serverB 并反向)。重新启动两台服务器计算机后,rsync 无法在sudo crontab. 我还设置了一个新的 cronjob 但它失败了,错误是:

rsync error: unexplained error (code 255) at io.c(600) [sender=3.0.6]
rsync: connection unexpectedly closed (0 bytes received so far) [receiver]
Run Code Online (Sandbox Code Playgroud)

但是,当从终端运行时,rync 脚本按预期工作,没有问题。请帮忙。

rsync incrontab

14
推荐指数
2
解决办法
4万
查看次数

rsync 文件到 kubernetes pod

我需要将文件树 rsync 到 kubernetes 集群中的特定 pod。如果只有一个人可以说服 rsync 相信 kubectl 的行为有点像 rsh,那似乎应该是可能的。就像是:

rsync --rsh='kubectl exec -i podname -- ' -r foo x:/tmp
Run Code Online (Sandbox Code Playgroud)

...除了这会遇到 x 问题,因为 rsync 假设需要一个主机名:

exec: "x": executable file not found in $PATH
Run Code Online (Sandbox Code Playgroud)

我似乎找不到帮助 rsync 构建 rsh 命令的方法。有没有办法做到这一点?或者可以通过管道实现相对高效的文件传输的其他方法?

(我知道gcloud compute copy-files,但它只能在节点上使用?)

rsync kubernetes

14
推荐指数
2
解决办法
2万
查看次数