我们需要在多个服务器上保持一组文件同步。这似乎是一个简单的问题,但我不是全职系统管理员,虽然我找到了一个简单的解决方案,但它不是很健壮。
我们有一个应用程序,我们通过 Citrix 在 Windows Server 2003 机器上为我们的企业服务(这些机器即将被虚拟化)。最初,当应用程序发布新版本时,我们会手动将文件复制到每个服务器。我通过批处理文件减少了这项手动工作的占用空间。它可以工作,但我认为更好的是将更新的文件复制到一个位置,并让一个工具来处理其余部分。
是否有其他工具可以轻松进行同步,或者我最好的选择是坚持我所拥有的,或者研究 Robocopy 的更高级功能?
我们正在使用SyncBack,它在所有版本中都有很多不错的功能:免费、SE 和 PRO 版本:通过网络共享或 FTP、ZIP、过滤器、HTML 和电子邮件日志、调度等同步或备份。
我们在我们的服务器上使用商业和免费版本来进行 Web 应用程序部署/同步、日志文件传输和备份到磁盘作业。
假设您正在运行 Windows 2003 Server 的 R2 或更新版本,那么您就可以立即使用DFS 复制。它专为您描述的情况而设计。特定文件夹中的所有文件都会在复制组中的每个成员之间自动同步。一旦在任何成员上检测到任何更改,它就会自动发生,并且仅通过网络发送文件的更改位。
不要让看似复杂的文档吓到您。假设您已经拥有一个 Active Directory,那么进行设置非常简单。
如果您只想要简单的文件夹同步,我只需使用如下脚本:
这将从 %DESTINATION% 添加和删除文件,使其与 %SOURCE% 匹配。如果您想要更好看的东西,请尝试RichCopy ,它是Robocopy GUI的继任者
Rsync 是一个不错的选择,但对 Windows 不太友好。ViceVersa可能工作并支持锁定文件的卷影复制。
您似乎正在尝试手动将数据推送到运行应用程序的其他机器,因此您需要在替换它们的文件之前关闭应用程序?如果是这种情况,您将需要从主机编写脚本来轮询更新服务器,或者让您的脚本远程登录并调用更新脚本。
我刚刚使用cwrsync(rsync 的 Windows 编译)在 Windows 2000 Server 和 Windows 2003 Server 之间设置了文件同步。它很容易设置并且似乎运行良好,但我发现速度存在问题,尽管网络能够通过 FTP 提供 1 Mb/s,但客户端似乎无法达到 130 Kb/s。其他人经历过这个并找到了解决方案吗?
另一个好工具是Always Sync。支持 n 路同步、连续同步、可选择将已删除的文件移动到单独的文件夹中、与 USB 设备等配合使用等。
机械复制
Robocopy(稳健文件复制)可以使用 /MIR 标志处理一些基本同步。
您会发现 Robocopy 内置于 Vista 和更高版本的操作系统中。