跨平台文件同步方法

跨平台文件同步方法

在包含不同版本的 Windows 客户端(Win98、NT、Windows 7)和 Linux 文件服务器的跨操作系统网络中,我想要同步文件夹。

有两个限制:

1) 每个客户端应同步到服务器上的特定文件夹,但由于磁盘空间限制,客户端之间不应相互同步。

Server -+- SyncFolder for Client A  <---> Folder_X on Client A
        |                                 
        +- SyncFolder for Client B  <---> Folder_Y on Client B 

在上面的例子中,客户端 A 和客户端 B 不同步。

2) 没有可用的互联网连接,因此无法使用 Dropbox,但可以使用 Owncloud 等私有云设置。

有什么解决方案?

编辑:完美的解决方案是像 Dropbox 或类似工具一样立即同步,而不需要用户交互。

答案1

您的意思是:“1)每个客户端应该同步到服务器上的特定文件夹,但由于磁盘空间限制,客户端不应该相互同步。”

“同步”一词含义模糊。该术语至少有三种可能的解释:

  1. “仅推送”同步,这意味着客户端将其数据推送到服务器,但不从服务器下载任何数据。

  2. “仅拉取”同步,这意味着客户端将其数据下载到服务器,但不会将其本地更改推送到服务器。

  3. “双向”同步,是1和2的结合,并结合了一些关于在推送或拉取同名文件时合并或解决冲突的规则。

如果你只想推送,你可以使用一些简单的工具,比如 FTP 或 SCP(有几十个可用的客户端和服务器在所有主要平台上)并将数据推送到服务器,而不管服务器上的内容。

如果您只想根据某些规则同步某些文件,那么这本质上就是“有规则”的双向同步。虽然您的规则可能是任意复杂的规则,例如仅在以“5”结尾的年份的凌晨 12:07 乌拉圭上空的月亮正好是半满时下载文件,基本的“rsync”程序支持常见的预期规则。请参阅http://linux.byexamples.com/archives/305/filter-what-to-backup-with-rsync/

答案2

您需要做的就是找到一个适用于您所有版本的 Windows 同步程序。我个人使用过同步中在所有操作系统上都支持,但当前版本可能不再支持 NT 之前的任何版本——尽管他们可能愿意为您提供旧版本。他们也有站点许可。

微软有一个免费的实用程序,叫做同步玩具,但我再次认为它不支持 Win98。

答案3

如果你希望在所有平台上使用一个工具,你可以调整https://launchpad.net/sucsynct在 Windows 上使用 win-bash 或 cygwin 运行。

相关内容