一个简单的问题是,您如何定期将 Windows 文件系统同步到 FTP 目标,同时从不检查目标是否有更改,除非发生坏事并且不依赖文件大小或日期/时间更改。使用日期/时间来确定更改(NTS 更改秒数、夏令时等)时存在太多其他差异,并且由于阻塞因素等,文件大小不那么可靠。
第一个问题是那里的 FTP 服务器软件支持使用 MD5 的校验和或哈希(与 SHA-1 相比,MD5 相当快,但无论如何都可以)。
第二个问题是哪个复制程序可以从目录列表中生成哈希值,将它们存储在数据库中,发送任何更改或新的内容,除非发生异常情况,否则永远不要检查目标 FTP 服务器,可能有一个服务器端实用程序来生成数据库如果文件已经存在。
使用rsync服务器和客户端附加(或代替)原始 FTP 服务。rsync 旨在完全执行您描述的操作。FTP 专为复制文件而设计。是的,您可以通过 FTP 的 SITE 命令计算校验和,但这只是一个 hack。
到目前为止,我从未见过提供校验和命令的 FTP 服务器(它是自定义的,AFAIK 它不是 FTP rfc 的一部分),所以我认为整个方法都行不通。
您可以在命令行中使用这个简单的 Windows FTP 工具;检查 wiki 页面以获取手册。
http://sourceforge.net/projects/ftpandfilesystemsynchronizer/
来自不同网站的报价:
Serv-U 和 RaidenFTPd 都有 XCRC 的工作实现。在这两个中,我推荐 Serv-U。