# 适用场景

在不同电脑上进行文件夹的同步,在同一电脑上进行文件夹的同步。

# 写作背景

个人拥有两台电脑,一个 thinkbook,一个 MacBook。thinkbook 作为主力机,奈何续航不太行,于是入手了 MacBook。然而,随机使用哪台电脑在对同一文件的操作上总会遇到同步的麻烦,总不可能通过类似 qq 传文件的方式,每次都传吧。

除了文件的同步问题外,还有一个博客笔记的协作问题。如下图的完整的博客文件夹中,只有 _posts 子文件夹下是存放 Markdown 笔记的,其他的是构建博客的文件,特别是 public 目录下,是将 md 文件生成的 html 文件存放的位置,并且将所有的图片文件转移到此目录下。如果同步整个博客文件夹,得有好几个 G,并且每次生成 html 文件后都会触发实时同步,带来麻烦。

1677857181411

  • <a src="./images/note/1677857181411.png" width="60%">

# 使用工具

  • 百度云盘
  • freefilesync

原因分析:之前试过坚果云之类的其他软件,发现不太行,对于一些特殊格式的文件还是备份不了。并且免费版的容量只有 1G。(小厂吧)

其实之前尝试过使用 git,每次都需要 add、push、commit 和 pull,对于频繁的写笔记操作,方式不太可取,并且一旦放了大文件, .git 文件也将会变得超级大。

# 操作过程

# 同一电脑上的文件同步(freefilesync)

下载地址:https://freefilesync.org/

下载下来的时候会有两个执行文件,FreeFileSync 和 RealTimeSync,FreeFileSync 用来指定同步操作并导出批处理作业,RealTimeSync 用来监视文件夹的变化并自动执行批处理作业

# 指定同步的两个文件夹

优点:不需要额外建立文件夹,直接指定两个需要进行同步的文件夹即可。

指定需要同步的两个文件夹:

1677857988905

1677858085480

另存为批处理作业 可用于实时检测处理。

1677858104123

设置实时监测文件变化并自动执行批处理作业。

1677858195105

1677858150064

# 不同电脑上的文件同步

此处尚未尝试使用云盘,本来想用 FreeFileSync 连接 Google Drive 的,然后发现无论是否使用科学上网,都连接不上,但是当初使用 iCloud 进行 MacBook 和 ipad 进行 goodnote 笔记同步的时候,就觉得挺慢的。

然后就使用了大厂百度的百度云盘 svip。

缺点:需要设置一个文件夹作为同步空间,并且这个文件夹的名字得为 BaiduSyncdisk ,且不能更改。

上述缺点就使得无法在两台电脑上仅同步 Markdown 笔记的文件夹。

1677858773023

# 最后结果

MacBook 和 thinkbook 之间通过百度云盘同步 Markdown 笔记文件夹 _posts ,thinkbook 内通过 freefilesync 同步 BaiduSyncdisk 内的 _posts 和博客文件夹下的 _posts

# 锁问题

# 问题描述

1677927174313

因为这里涉及到中间文件的多进程同时读取,

百度云盘在上传 / 下载文件的时候会生成一个中间文件,这个文件在被 freefilesync 同步的时候会发生锁问题。

1677928769168

# 问题解决

freefilesync 中可以设置 exclude,过滤掉不备份的文件。