在包含不同版本的 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的结合,并结合了一些关于在推送或拉取同名文件时合并或解决冲突的规则。
如果你只想推送,你可以使用一些简单的工具,比如 FTP 或 SCP(有几十个可用的客户端和服务器在所有主要平台上)并将数据推送到服务器,而不管服务器上的内容。
如果您只想根据某些规则同步某些文件,那么这本质上就是“有规则”的双向同步。虽然您的规则可能是任意复杂的规则,例如仅在以“5”结尾的年份的凌晨 12:07 乌拉圭上空的月亮正好是半满时下载文件,基本的“rsync”程序支持常见的预期规则。请参阅http://linux.byexamples.com/archives/305/filter-what-to-backup-with-rsync/
答案2
答案3
如果你希望在所有平台上使用一个工具,你可以调整https://launchpad.net/sucsynct在 Windows 上使用 win-bash 或 cygwin 运行。