数据的重要性不言而喻,因此,定期做数据备份已经是每一个人的基本工作习惯了。
FreeFileSync 是一款强大专业且免费开源的 文件夹对比/同步/备份 软件工具。FreeFileSync通过比较其内容,日期或文件大小上的一个或多个文件夹,然后根据用户定义的设置同步内容。除了支持本地文件系统和网络共享之外,FreeFileSync还能够同步到FTP,FTPS,SFTP和MTP设备。
总而言之,使用 FreeFileSync 能帮助我们更加轻松高效的进行数据备份和文件同步,并且完全免费。
一、软件下载与安装
-
下载网址:FreeFileSync: Open Source File Synchronization & Backup Software
-
支持系统:Windows,Linux和macOS
安装后会得到两个软件:
-
FreeFileSync(配置同步方式)
-
RealTimeSync(定期执行任务)
二、基本操作
在讲解具体功能之前,我们先来了解一下 FreeFileSync 的用户界面。
1:保存 / 加载配置 2:比较内容缩略图 3:比较文件差异按钮 4:文件比较设置 5:过滤器设置 6:文件同步设置 7:文件同步按钮 8:添加文件目录组 9:源文件目录 10:两侧互换按钮 11:目标文件目录 12:源文件目录与目标目录不同的文件列表 13:同步动作预览区域 14:目标文件与源文件不同的列表 15:同步动作统计
文件同步
FreeFileSync 有四种同步模式:
-
镜像模式:源文件夹的文件修改会影响目标文件夹,目标文件夹的文件修改不会被保留且始终保持和源文件夹一致;
-
双向模式:源文件夹和目标文件夹内文件修改同步,修改任意文件夹内文件都影响到对方;
-
更新模式:源文件夹的文件只会增量修改到目标文件夹,目标文件夹的修改可以保留且不影响源文件夹;
-
自定义模式:自定义文件同步规则;
数据备份一般选择更新模式;文件同步一般选择双向模式。
在下图中,我们准备了两个文件夹:
-
源文件夹:存放着原始数据,模拟我们日常经常会使用到的一些常见数据格式。
-
目标文件夹:未存放任何数据。
接下来,我们以这两个文件夹为示例,来分别对三种不同的文件同步方式进行演示。
镜像模式
使目标文件夹(右)与源文件夹(左)保持完全一致。若源文件夹中添加、修改了哪些文件,目标文件夹同样进行添加和修改。若源文件夹中有文件删除,目标文件夹中也同样进行删除。
首先,我们将两个文件夹导入对应的操作区,并将同步模式改为:镜像。
点击比较按钮,此时软件会对两个文件夹进行比较。
此时,我们可以将鼠标移动到中间的同步动作预览区域,他会展示目前所指向的文件在两侧文件夹的情况(如,项目仅存在于左侧),以及接下来将执行的操作(如图中,将对该文件执行复制到右侧的操作)
点击同步按钮,此时会跳出确认界面,在此界面会列出接下来会执行的操作统计。
点击“开始”,等待进度条完成,即可同步完成。
现在,让我们来看一下镜像模式下的其他情况: 我们对同步文件夹做以下修改:
-
删除 "word数据.docx";
-
修改文本数据内容;
此时,我们再次使用镜像同步比较会出现什么操作?
由图可见,软件将两个文件的差异项比较了出来,并分别对他们分配了如下的操作:
-
word:复制新项目到右侧;
-
txt:更新右侧项目;
执行文件同步后,我们发现,被我们删去的word文件回来了,并且文本数据也于源文件中的文本文件数据一致。
双向模式
与镜像类似,不同的是,镜像只是从左到右,双向既可以从左到右,也可以从右到左。也就是说,如果右侧的文件夹发生了改变,左侧的文件夹也同样进行修改。
接下来,我们将同步模式改为”双向模式“,再次对两个文件夹进行比较。
此时我们会发现,同步动作预览区出现了一个”闪电“标志,如果我们此时执行同步,就会出现警告:
这个时候,就需要我们手动去选择软件对该文件的同步处理操作:
此时,我们既可以选择更新右侧数据,也可以选择更新左侧数据,这也就实现了双向同步,即,源文件端与目标文件端均可以对对方执行修改操作。
更新模式
也就是增量备份,只更新添加和修改的文件,不删除文件。它与镜像不同的是,左侧文件夹中的文件若是删除了,右侧文件夹中的文件不进行删除。
为方便演示,接下来,我们对两个文件夹做以下修改:
-
保持两个文件夹 "文本数据.txt" 内容一致;
-
在源文件夹中添加"新增文本文件.txt";
执行比较操作:
我们发现,软件对新增的文本文件执行的是复制到右侧目标文件夹的操作。
那么现在我们将源文件中的 "文本数据.txt" 删去后,执行比较会发生什么?
此时的同步操作是 "保持不动"。
以上便体现了更新模式“增量备份”的特点。
自定义模式
自定义模式即让我们可以制定属于适合自己的同步策略。 根据在文件同步过程中出现的各种差异我们可以选择不同的处理操作,这里不过多赘述。
历史记录
对于在执行文件同步过程中发生修改或者删除的文件,我们也可以对其安排不同的处理策略。 打开同步设置(点击绿色齿轮),我们可以看到软件为我们提供了三种处理策略。
接下来我们来介绍一下如何保存历史记录版本。 我们按下图所示进行配置:
我们对下图的两个文件夹执行同步操作。
执行同步操作后,打开我们之前指定的保存历史记录的文件夹
可以发现,被修改的文件成功保存了。
过滤器设置
在我们同步过程中,可以通过过滤器来过滤我们需要处理和排除的文件。
在其中我们使用通配符添加我们需要过滤的条件(如有多个条件,换行再添加即可)。
批处理
手动操作文件同步还是不够方便,我们可以把同步规则保存成批处理作业,更高效的完成同步操作。
点击左上角保存/另存为,即可将我们设置好的同步策略保存成脚本文件,之后只需要点击脚本就可以执行对应的同步操作。
另外,我们也可以选择将其保存为批处理作业,之后只要点击保存的批处理文件,就可以执行预设的操作,帮助我们更高效的完成文件同步操作。
定期自动备份
如果有一些同步备份操作需要定期执行,也可以使用软件实现系统定期自动监控与执行同步操作。
打开RealTimeSync
,将要定时处理的批处理文件拖入命令行,设置好时间,点击“开始”,即可开启软件的实时检测,当检测文件夹一旦变动,就会执行预设的同步操作。
当然,我们也可以点击左上角“文件”> 另存为,保存监测文件,这样也可以方便执行。
三、高级设置
登录自动执行监测
-
win + R 打开运行,输入
shell:startup
,打开启动目录; -
我们可以将保存的批处理文件、监测文件拖放到该目录下,这样就可以实现开机自动执行和监测了。
系统任务计划执行
-
在“开始”菜单中搜索“task”,打开 任务计划程序;
-
在右侧操作菜单栏中选择“创建基本任务”,填写相关参数,即可使用系统自动定期定时计划执行同步备份操作。
专用设置
FreeFileSync具有许多专用设置,只能通过手动打开全局配置文件GlobalSettings.xml
来访问。请注意,FreeFileSync启动时会读取此文件一次,退出时会再次保存。因此,仅在FreeFileSync未运行时才应用手动更改。对于便携式FreeFileSync变体,该文件位于安装文件夹中,对于本地安装,请转到:
-
Windows:%AppData%\FreeFileSync
-
Linux:~/.config/FreeFileSync
-
macOS:~/Library/Application Support/FreeFileSync
-
FileTimeTolerance:
默认情况下,文件修改时间允许有2秒的差异,但仍被视为相等。这是FAT / FAT32文件系统所要求的,它只能以2秒的精度存储文件时间。
-
RunWithBackgroundPriority:
在同步正在运行时,访问相同数据位置的其他应用程序可能会出现明显的减速。启用此设置可降低FreeFileSync的资源消耗,但代价是同步速度明显降低。
-
LockDirectoriesDuringSync:
为了防止多个同步任务读取和写入相同的文件,FreeFileSync实例使用锁定文件(sync.ffs_lock)进行序列化。锁文件只能由FreeFileSync识别,并确保最多只能同时对某个文件夹运行单个同步,而其他实例排队等待。这可确保只有一致的文件集才能同步。主要用例是网络同步方案,其中多个用户针对共享网络文件夹同时运行FreeFileSync。
-
VerifyCopiedFiles:
如果处于活动状态,FreeFileSync将在复制后对源文件和目标文件进行二进制比较并报告验证错误。请注意,这可能会使文件复制时间翻倍,并且无法保证数据在复制之前尚未损坏。此外,欺骗性地从应用程序和硬件堆栈中的各种缓冲区中读取有效数据可能会隐藏损坏:
-
NotificationSound:
从比较或同步后要播放的FreeFileSync安装目录中选择声音文件。如果不播放声音,请设置空名称。
推荐资料:
-
【软件 | 数据全自动备份 | 三种解决方案 | FreeFileSync-哔哩哔哩】 软件 | 数据全自动备份 | 三种解决方案 | FreeFileSync_哔哩哔哩_bilibili
-
【【14001】FreeFileSync:差异同步、镜像备份、增量备份 全能的同步软件 文件同步 本地同步 在线同步 RealTimeSync-哔哩哔哩】 【14001】FreeFileSync:差异同步、镜像备份、增量备份 全能的同步软件 文件同步 本地同步 在线同步 RealTimeSync_哔哩哔哩_bilibili
-
FreeFileSync官方文档
-
https://www.cnblogs.com/mat-wu/p/10790767.html