Matrix 首页推荐

Matrix 是少数派的写作社区,我们主张分享真实的产品体验,有实用价值的经验与思考。我们会不定期挑选 Matrix 最优质的文章,展示来自用户的最真实的体验和观点。

文章代表作者个人观点,少数派仅对标题和排版略作修改。


在工作中,我常常出于对数据安全的考虑会经常性地对文件进行备份,以防哪天电脑出现故障或是需要查找某个年代久远的资料的情况发生。

通常来说,大多数人都会使用类似于 iCloud、One Drive、百度网盘等类似的云盘来存放这些备份资料。但如果你仅仅只是在本地不同设备间留存副本,或是将本地的文件同步到内网的服务器上,那么你可能需要的仅仅只是知道哪些文件有差异,并进一步同步文件的这一过程,而无需担心存储等问题。

FreeFileSync(下文简称:FFS)就是一款能很好地满足我们比对文件变动并进行同步的软件,它使用 C++ 语言编写、免费、开源且支持桌面端全平台(即 Windows、macOS 以及 Linux),可用于对重要文件的备份以及备份副本管理。

安装与上手

进入 FFS 的官网后,点击左侧的 Download 部分进入下载页面,然后根据自己操作系统选择对应版本即可开始下载。

FFS 本身免费且无任何功能限制,但是会通过主页广告(使用时无广告)和捐赠来为开发人员带来一定的营收。如果你能使用 PayPal 这样的境外支付方式进行捐赠(捐赠金额由你决定),则可以下载带有额外功能的捐赠版本,该版本主要支持的额外特性包括并行文件访问、自动更新、开箱即用免安装等。

下载完成后,我们只需要按照安装包的引导步骤默认安装即可,安装完成后即可进入到 FFS 的界面。

多亏了其他开发者的贡献,FFS 界面有着较为完整的中文汉化支持,使用过程中无需担心语言带来的理解和操作问题。

配合简洁的界面设计和几乎没有复杂选项的功能菜单,我们稍微探索一下就能快速上手。

图源 FreeFileSync 官网

上述部分对应着 FFS 的展示、设置以及可操作项:

  1. 比较设置
  2. 执行差异比较
  3. 包含或排除特定文件
  4. 同步设置
  5. 执行同步操作
  6. 添加源目录路径
  7. 添加待同步目录路径
  8. 当前操作界面配置
  9. 文件树情况概览
  10. 同步预览
  11. 网格显示类型
  12. 同步统计信息

但对于每个最开始使用 FFS 的人来说,撇去 FFS 的设置以及其他功能不谈,最为简单的用法就是:

  1. 在中间的左侧部分拖入源目录
  2. 在中间的右侧部分拖入存放备份的目录
  3. 点击「比较」按钮
  4. 点击「同步」按钮旁边的倒三角形并选择同步的方式
  5. 点击「同步」按钮开始同步

FFS 支持多项同步操作,因此如果你需要同步的不仅仅只是一个目录,那么也可以点击绿色的加号图标进行添加。

比较、同步方式的选择

默认情况下,FFS 比较文件差异的方式是基于文件修改时间和大小,以此确定新旧目标以及同步方向。

除此之外,FFS 还提供了另外一种根据文件内容比较的选项,它能通过对文件的字节进行逐比特检查(bit-by-bit)判断文件是否发生了修改1。如果你对于文件差异有更为精准的需求,不妨将比较方式设置为根据文件内容进行比较。

类似的,FFS 也提供了四种同步的方式,不过这些方式间有一定的区别:

  1. 双向同步(默认):识别左右两个目录中文件的异同,同步后双方文件及结构保持相同
  2. 镜像同步:无论右侧的目标目录如何改变,最后同步都会依据左侧的源目录为准,即「全量备份」
  3. 更新同步:即只同步新的文件或是已经变动的文件,相较于全量备份而言属于「增量备份」
  4. 自定义同步:根据用户自定义同步行为进行文件同步

通常情况下如果我们仅仅只是备份,那么我更推荐更新同步。因为它避免了镜像同步全量覆盖的弊端,这样如果有一天我们想要找回以往的备份文件时就会深刻体会到增量备份的好处。但其缺点在于需要占用额外的存储空间,如果你备份的文件容量过大,那么在同步之前先斟酌是否需要做到留存以减少磁盘的压力。

如果仅仅只是简单粗暴的直接覆盖,那么选择镜像同步即可;如果同步的文件存在因多人操作或协作而造成的经常性变动,那么默认的双向同步是能确保操作文件的双方都能很好维持原貌的方式。

支持云端存储配置

FFS 除了适用于本地的文件同步之外,还支持 Google Driver、SFTP 和 FTP 三种远程方式进行文件的同步与备份。这里不仅可以将本地文件到同步到远程服务器,还可以从一个远程目录同步到另外一个远程目录。

我们只需要在选择同步目录的浏览按钮旁边的云状图标,就能进入到访问在线存储这一配置远程方式的同步的界面。由于我备份的是工作相关的文件,所以通常我会将公司给我配备的 Linux 服务器账号下的某个文件夹作为目标目录,然后进行同步。

无论是 SFTP 还是 FTP,FFS 都提供了三种认证方式,使用密钥来连接服务器也是目前安全性较高且较为方便的一种方式。在这里我主要选择了 SFTP 形式并指定本机对应的安全验证密钥,通过「服务器上的目录-浏览」选项来选择需要备份到的指定服务器目录。

之后所有的操作都和本地操作没有区别。

FFS 的特定文件扩展名

FFS 有两个专门的文件扩展名,一个是 .ffs_gui,一个是 .ffs_batch

.ffs_gui 主要用于记录我们在 FFS 当前界面操作的一些数据,比如同步的目录、比较或同步的方式、过滤项是哪些等等。所以如果我们经常对某个目录进行文件的备份或同步,那就无需每次打开新窗口然后手动指定同步的源目录与目标目录,将此次的操作保存成一个 .ffs_gui 文件,在下次同步时通过 FFS 将其打开即可一步到位。

.ffs_batch 则适用命令行操作,即我们可以在 .ffs_gui 文件的基础上将其保存为该格式,然后将其视为一个代码脚本,这个脚本可以通过 FFS 本身来执行,也能够搭配相应的定时任务调度器来做到自动化同步。

在保存的过程中为了避免产生弹窗影响,我们可以勾选「以最小化运行」和「自动关闭」两项,以便让同步达到触发条件时也不会干扰我们当前的活动。

命令行运行与定时任务

既然涉及到对文件的同步或备份,我们肯定是不想每次还需要自己亲自动手去点击操作。好在 FFS 本身的可执行程序就是一个命令行工具,能够结合代码脚本实现完全的自动化,而无需让使用者全程参与。

当然减少自动化复杂度的前提是我们将所有操作记录都保存为 .ffs_batch 文件,然后直接通过定时任务调度器在指定时间里执行 FreeFileSync.exe <your-ffs-backup>.ffs_batch 即可。

FFS 官方也贴心地提供了不同操作系统如何结合 FFS 来实现定时同步或备份的操作。

Windows

在 Windows 上操作你只需要使用自带的「任务计划程序」来安排同步任务即可。

首先,通过 Win 键弹出菜单栏,然后找到「Windows 管理工具-任务计划程序」并点击。

进入到任务计划程序界面后,点击右上方部分的「创建基本任务」选项,你可以在里面填写任务名、并设定触发时间之后进行下一步;到「操作」步骤时,则选择默认的「启动程序」,并分别将 FFS 的可执行程序以及 .ffs_batch 文件的绝对路径填上(这里注意需要将路径都放入英文引号内):

最后默认下一步完成即可。

macOS

在 macOS 上你可以使用自带的 Automator(自动操作)来实现。

首先,需要将我们在 FFS 上设定好的一系列操作保存为 .ffs_batch 文件。

然后我们打开 Automator,并新建一个「日历提醒」类型的自动化脚本,之后选择资源库中适用于 Finder 的「文件和文件夹」,接着先将保存好的 .ffs_batch 文件拖入框中,最后再从左侧找到「打开访达项目」这一项拖入流程框。

首次保存会立即执行,但我们可以在日历上找到该任务,并根据自己的需要选择相应的同步时间:

当然如果你自己有一些编程基础,那么你也可以不按照官方的推荐方式来安排同步任务,可以选择像 cron 这样的命令行工具来实现,这留给感兴趣的读者自行去探索。

> 下载少数派 客户端 、关注 少数派公众号 ,了解更妙的数字生活 🍃

> 想申请成为少数派作者?冲!