补充:如果能满足需求,直接以文件夹形式共享有更合理的方法,以ShadowsocksX-NG为例
ln -s /Users/Ares/Library/Mobile Documents/com~apple~CloudDocs/Ares/.ShadowsocksX-NG ~/.ShadowsocksX-NG
多台机器使用软链即可!
场景如下:
shadowssocks 用户PAC需要不同机器全自动同步(通过iCloud),shadowssocks用户pac没有相关配置文件指定配置目录,默认在$HOME/.ShadowsocksX-NG/user-rule.txt。使用硬链接或硬链接套软连接都不行,因为通过shadowsocks内部修改user-rule.txt会导致文件inode变化,inode>1通过vi修改不会导致inode变化,但是icloud同步文件inode会变化,结论:只能通过外部实现。
mac下比较著名的是goodSync,大家伙100Mb,破解版安装也是非常麻烦,因为没安装成功,找到了一个更好的软件,freeFileRsync,内部有一个RealTimeSync可以完美达到目的。
需要解决的问题是
- iCloud死循环
- RealTimeSync自身死循环
- RealTimeSync命令中rsync死循环。
1的产生主要是由于3,2通过修改空闲时间解决(应该大于命令执行时间即可,默认10是个不错的选择),3通过 tu参数解决。
命令行:
rsync -tu /Users/Ares/.ShadowsocksX-NG/user-rule.txt /Users/Ares/Library/Mobile\ Documents/com~apple~CloudDocs/Ares/Document/shadowsocks/user-rule.txt;rsync -tu /Users/Ares/Library/Mobile\ Documents/com~apple~CloudDocs/Ares/Document/shadowsocks/user-rule.txt /Users/Ares/.ShadowsocksX-NG/user-rule.txt
所有需要同步的机器上都配置相同的RealTimeSync即可。
本套环境的强大之处在于可以同步任意非iCloud文件。
freeFileSync下载: