出于对国内网盘服务的 不信任(安全技术、职业操守 以及 看不见的手),以前一直用 Dropbox。
Dropbox 被墙,就科学地继续用。后来墙加高,忙起来没空研究新科学,就慢慢不怎么登陆 Dropbox。转用国内的服务——只放无关痛痒资料——重要信息只好手机里加密随身带。(过程中发现国内网盘第 4 个坑点:风来都凑热闹,风走都嚷嚷着停止服务……)
几个月前忽然想起 Dropbox,登录时发现太久不用帐号被停了,连恢复期也过了。还好文件在本地都有。
手机空间毕竟有限,又对国内服务不信任,开始关注 BTSync 。结果发现是商业软件:虽然基础服务免费,但过几年不赚钱你撂挑子怎么办?(这种事情没少发生,每次重新习惯新工具都很麻烦)
最后选择了开源的 Syncthing (且跨平台,连 Android 都有 client)。开源项目只要有足够的关注,就不容易死,即使原作者放弃也很快有人接手。
Syncthing 很好上手,教程一搜一大把。
小众这篇就够清楚了: Syncthing – 数据同步新选择,手把手教你做自己的网盘
这只记录网上没有解决方案(起码我没搜到),最后自己琢磨解决的麻烦,一些不起眼别处没有提到的坑。其实就是给自己 Mark。
单向备份
Dropbox ,各家网盘,以及这个软件直接就叫 Sync-thing,最基本的需求是 同步 。换言之,关联设备上对应的目录,内容要保持一致,任一台设备的 『增-删-改』,都要同步到其它设备。
同步 Syncthing 当然能做到。
以我为例,手机乱拍一通,很快就塞满照片。(前东家的免费广告,三星 Galaxy S7 拍照效果好,欲罢不能)我需要把照片存起来,在手机上删除,释放有限的空间。又不想整天电脑连线,照片文件夹就加入了 Syncthing 的监控。
实际使用,发现问题:
- 照片完成从手机到电脑的同步,多数要删掉释放空间。
可在手机一删就会发现,任何操作 都会同步,包括 删 这个动作——可我同步本来就是为了删。 - 出于归档需要,电脑上会对照片重新分目录,编辑,删掉不需要的照片,这些操作也不想同步回手机。(可能存在电脑不归档,但手机上有用,如明天的购物单)
后来想想,我需要的其实是 备份 。多数网盘有自动备份功能,可惜我信不过它们。
主目录 Master
然后我在设置里发现了 主目录 这个选项。特意翻了文档,意思是主目录的文件会自动同步到普通关联目录(主 => 普通 自动sync),但关联目录的修改只会跟 主目录 对比,默认不会覆盖 (任意 => 主 需要手动确认才覆盖)。
基于上面两点需求,我把 手机 和 电脑 的目录分别都设为了 『主目录』,这样它们不会自动同步,都需要我确认。
IgnoreDelete
问题解决了吗? —— 并没有。
任意目录 => 主目录 虽然是手动确认,但选择粒度只有 不同步 / 完全覆盖 两个选项,并不能部分同步。(题外话,Overwrite changes 被错误翻译成了 撤销修改 )。稍微翻一下 高级设置 或者 配置文件 会发现,所谓的 主目录,本质上是一个 readonly 目录,区别于普通目录的 readwrite 。
问题 2,基本解决。我几乎没有需要电脑照片同步到手机的时候。偶尔传图,可以用另外的同步目录,没必要用图片目录。
但只是多了个确认按钮,问题 1 还在。从手机到电脑,完全不同步,和直接覆盖,两个选项我都不需要。
这时我在高级设置又发现了一个选项 ignoreDelete 。名字猜到一二,再看文档,如我所想:
设置为 ignoreDelete 的目录,只同步 删除以外 的操作。换言之,其它设备的删除操作,不会影响当前设备。
小结
手机图片目录: 主目录
电脑备份目录:ignoreDelete
手机上任何 新增 / 修改 的图片都会备份到电脑上,而手机上为了省空间删除 却完全不影响电脑。
* 注:Syncthing 不光可以安装在电脑上,只要系统允许,一台智能路由器,一台树莓派,任何联网的存储设备,都可以变成私有网盘。这里为了方便描述,统一写电脑。
移动文件夹
一般来说,要同步的文件夹都比较重要,所以位置应该也相对固定。
不过作为一个强迫症,偶尔整理时,还是会觉得目录安排不合理,想动一下。像之前在 home 目录下按格式分类建立同步目录,后来一想太乱,这些目录应该放在文档目录下。
已经同步了,怎么办?在 Syncthing 文件夹选项里,发现路径是不能改的。
删了,重来
一开始只好是,在Syncthing里移除 > 文件夹挪位置 > 把新位置重新添加。
这样操作有一些问题。且不说如果有大文件,重新添加会浪费扫描时间,毕竟是电脑干活,人只是等一下;就说重新添加时要重新填文件夹设置,也够烦了。不就是挪个位置吗?!
高级设置
其实,高级设置里可以改:
- 改之前建议把 扫描间隔调大,手动点一下扫描 ,确保操作期间不会碰上 扫描和同步
- 改路径 和 挪文件 的先后倒没关系。改好挪完之后,重新点一下扫描,正常情况应该是两边 hash 一致,什么操作都不触发。
如果只改路径或者只挪文件,触发了扫描,估计会被当作删除,触发同步。至于是把删除操作同步出去,还是重新下载,我没实际试,大家可以实际试一下。
To be continued…
本文为本人原创,采用知识共享 “署名-非商业性使用-相同方式共享” 4.0 (CC BY-NC-SA 4.0)”许可协议进行许可。
本作品可自由复制、传播及基于本作品进行演绎创作。如有以上需要,请留言告知,在文章开头明显位置加上署名(Jayce Chant)、原链接及许可协议信息,并明确指出修改(如有),不得用于商业用途。谢谢合作。
详情请点击查看协议具体内容。