是否有创建文件结构差异的工具,可能基于 MD5 清单。我的目标是通过网络发送一个包含新/更新文件和要删除的文件列表的包。它需要复制新/更新的文件并删除源文件结构中已删除的文件吗?
2 回答
你可以试试 rsync。根据您的需要,该命令可能很简单:
rsync -az --del /path/to/master dup-site:/path/to/duplicate
引用rsync 的网站:
rsync 是一个开源实用程序,可提供快速增量文件传输。rsync 在 GNU 通用公共许可证下免费提供,目前由 Wayne Davison 维护。
或者,如果您更喜欢维基百科:
rsync 是适用于 Unix 系统的软件应用程序,可将文件和目录从一个位置同步到另一个位置,同时在适当时使用 delta 编码最小化数据传输。在大多数类似的程序/协议中没有发现 rsync 的一个重要特性是,镜像发生时每个方向只有一次传输。rsync 可以复制或显示目录内容和复制文件,可选择使用压缩和递归。
@vfilby 我正在实现类似的东西。
我使用 rsync 已经有一段时间了,但是当部署到远程服务器时,它变得很时髦,并且权限更改超出了我的控制范围。使用 rsync 您可以选择不包含权限,但由于某种原因仍然会考虑它们。
我现在正在使用 git diff。这对文本文件非常有效。Diff 生成补丁,而不是您必须包含在文件中的清单。补丁的好处是已经有一个既定的框架可以在应用这些补丁之前使用和测试这些补丁。
例如,使用任何 *unix 机器上标配的补丁实用程序,您可以在试运行模式下运行补丁。这将告诉您要应用的补丁是否在您运行之前实际应用。这可以帮助您确保在准备补丁时您正在更新的文件没有更改。
如果这与您正在寻找的相似,我可以详细说明我的过程。