MAC OS X与Windows PC之间的网络同步

之前都是自己写了一个AppleScript,来做MACBook和PC之间的文件夹网络同步。要求的效果其实非常简单,就是将办公PC的文档备份到笔记本上一个加密的DMG里。AppleScript的流程也非常简单,无非就是切换网络、通过smb挂载PC的共享目录、判断并加载dmg,最后通过rsync来抓取PC上的内容。当然,我希望是无线搞定,不用通过U盘等媒介,并且得增量实现,否则每次几个G的文档能把人折磨死。

但不幸的是,上周突然发现DMG的文件比PC文件夹内容要少。经过仔细的检查,发现问题出在Samba上,某些子目录通过smb协议共享后会丢失,而更奇怪的是,这些文件夹在加载后,通过命令行是能看到的,只是属性不对:

ernMacBook:广东方案 ern$ ls -la

total 69584

drwx——@ 1 ern  staff     16384  4  2 18:52 .

drwx——  1 ern  staff     16384  4  2 18:56 ..

似乎就是这个“.”目录的特殊属性限制了它的可见性。搜索各大网站看到,可能和目录的名字有关系(samba协议本身有要求),也可能和samba本身的bug有关系,反正就是无法解决。

假期研究了一下,发现还是要通过Rsync协议来处理。在Windows PC上安装Rsync服务端,MACBook作为客户端同步过来。除了对顶层目录要求是英文以外,其他没有任何限制,今天测试通过。

下面来介绍下实现过程:

1. MAC OS X自带了Rsync客户端,如果不是版本控的话,就可以直接用了,从测试来看,能够正常使用。如果你喜欢用最新版,那得麻烦下载源代码然后编译安装了。下载地址:http://rsync.samba.org/,目前最新版本是3月份的3.0.8版。