11、文件比较与同步工具(FreeFileSync)
11.1、基本介绍:
1、FreeFileSync是一个用于文件同步的免费开源程序。FreeFileSync通过比较其内容,日期或文件大小上的一个或多个文件夹,然
后根据用户定义的设置同步内容。除了支持本地文件系统和网络共享之外,FreeFileSync还能够同步到FTP,FTPS,SFTP和MTP设备。
2、下载网址:https://freefilesync.org/。
3、支持系统:Windows,Linux和macOS。
(1)请选择windows版的进行下载:
(2)点击 exe 文件,一路"下一步"安装即可,安装后桌面上会出现 2 个快捷方式:
11.2、基本操作:
1、软件界面及功能:
(1)图示:
(2)功能:
1)快捷工具窗口
2)保存/加载配置
3)文件比较缩略图
4)开始比较文件差异按钮
5)文件比较设置
6)过滤条件设置
7)修改同步设置
8)同步按钮
9)源文件目录设置
10)待同步文件目录
11)源文件目录与待同步目录不同的文件列表
12)同步预览区域
13)待同步文件与源文件不同的列表
14)同步统计
2、文件比较设置:
(1)图示:
比较两个文件夹时,FreeFileSync会分析相对于包含文件的左右基本文件夹的路径。如果相对路径匹配,
FreeFileSync将通过考虑所选的比较变量来决定文件对的分类方式。
(2)按文件时间和大小进行比较:
1)当变体时间和文件大小匹配时,此变体认为两个文件相等。
2)在将文件与备份位置同步时应该选择它。
3)每当更改文件时,其文件修改时间也会更新。因此,按文件时间和大小进行比较将检测应同步的所
有文件。
(3)按文件内容比较:
1)如果两个文件具有相同的内容,则将它们标记为相等。
2)在进行一致性检查时应选择此变体,以查看两侧的文件是否按位相同。
3)它是所有比较变体中最慢的,因此其用于同步目的的有用性是有限的。
4)如果用于同步,则当修改时间不可靠时,它可以用作后备。例如,某些移动电话和传统FTP服务器
不会保留修改时间,因此在文件大小相同时检测不同文件的唯一方法是阅读其内容。
(4)按文件大小比较:
1)如果文件大小相同,则认为两个文件相同。
2)由于具有相同大小的文件可能具有不同的内容,因此仅当文件修改时间不可用或不可靠时才应使用
此变体。例如,在某些MTP和FTP同步方案中,按内容进行比较的速度太慢。
3、文件过滤设置:
(1)图示:
如果文件和目录通过所有过滤规则,则仅考虑进行同步。它们必须匹配包含列表中的至少一个条目,并
且不包括过滤器配置对话框中显示的排除列表中的任何条目,每个列表项必须是相对于同步基目录的文
件或目录路径。必须用 | 分隔多个项目或新行。* 和 ?的使用:* 表示零个或多个字符,而 ?代表一个
字符。
(2)从文件夹对C:\Source,D:\Target中排除项目:
(3)排除除某些文件之外的子文件夹:
设置两个具有相同源和目标路径但具有不同本地过滤器的文件夹对。
1)文件夹1:
排除文件夹:\SubFolder\
2)文件夹2:
包含文件:\SubFolder\*.txt
(4)排除空文件夹
文件大小为零的过滤器设置文件大小过滤器,下限为0个字节。 时间跨度和文件大小过滤器仅匹配文件,
因此这将排除所有文件夹。 然而,在同步期间,如果一些排除的文件夹包含至少一个非排除的项目,即
当它们不是空的时,它们仍将被同步。
4、同步设置:
(1)图示:
(2)同步模式:
1)双向:将左侧的更改同步到右侧,将右侧的更改同步到左侧。
2)镜像:将左侧的更改同步到右侧,包含删除移动等。
3)更新:将左侧的更改同步到右侧,不删除右侧原有的文件。
4)自定义:自行根据需要定义同步模式。
(3)检测已移动的文件:
1)FreeFileSync 能够在一侧检测移动的文件,并且可以在同步期间快速在目标端应用相同的移动,而不是
慢速复制和删除。为了使其工作,FreeFileSync 需要数据库文件(sync.ffs_db)来比较当前文件系统状态与上
次同步的时间。
2)双向:已经创建了数据库文件,因此,移动文件的检测始终处于活动状态。
3)镜像:不需要数据库文件来查找同步方向,因此默认情况下无法检测已移动的文件。如果你不介意创建
数据库文件,可以通过选中"检测已移动的文件"复选框来启用此功能。
4)更新、自定义:无法使用"检测已移动的文件"。
5)注意:
第一次同步文件夹对时,无法检测已移动的文件,只有从第二次同步开始,数据库文件才可用于确定移动的
文件。所有文件系统都不支持检测。最值得注意的是,无法检测FAT文件系统上的某些文件移动, 还有虚拟
化的文件系统,例如,安装的 WebDAV 驱动器可能不支持移动检测,在这些情况下,FreeFileSync 将自动
回退复制和删除。
5、高级设置:
(1)说明:
FreeFileSync 具有许多专用设置,只能通过手动打开全局配置文件 GlobalSettings.xml 来访问。请注意,
FreeFileSync 启动时会读取此文件一次,退出时会再次保存。因此,仅在 FreeFileSync 未运行时才应用手
动更改。对于便携式 FreeFileSync 变体,该文件位于安装文件夹中,对于本地安装,请转到:
Windows:%AppData%\FreeFileSync
Linux:~/.config/FreeFileSync
macOS:~/Library/Application Support/FreeFileSync
(2)参数:
1)FileTimeTolerance:
默认情况下,文件修改时间允许有2秒的差异,但仍被视为相等。这是FAT / FAT32文件系统所要求的,它只能以2秒的精度存储文件时间。
2)RunWithBackgroundPriority:
在同步正在运行时,访问相同数据位置的其他应用程序可能会出现明显的减速。启用此设置可降低 FreeFileSync 的资源消耗,但代价是
同步速度明显降低。
3)LockDirectoriesDuringSync:
为了防止多个同步任务读取和写入相同的文件,FreeFileSync 实例使用锁定文件(sync.ffs_lock)进行序列化。锁文件只能由 FreeFileSync
识别,并确保最多只能同时对某个文件夹运行单个同步,而其他实例排队等待,这可确保只有一致的文件集才能同步。主要用例是网络同
步方案,其中多个用户针对共享网络文件夹同时运行FreeFileSync。
4)VerifyCopiedFiles:
如果处于活动状态,FreeFileSync 将在复制后对源文件和目标文件进行二进制比较并报告验证错误。请注意,这可能会使文件复制时间翻
倍,并且无法保证数据在复制之前尚未损坏。此外,欺骗性地从应用程序和硬件堆栈中的各种缓冲区中读取有效数据可能会隐藏损坏。
5)NotificationSound:
从比较或同步后要播放的FreeFileSync安装目录中选择声音文件。如果不播放声音,请设置空名称。
6、同步文件步骤:
(1)设置源文件目录
(2)设置待同步文件目录
(3)设置文件比较方式(比较内容、时间、大小)
(4)设置同步参数(双向、镜像、更新及自定义)
(5)点击同步按钮
11.3、把 10.155.0.80 的本地 D:\source 目录同步到本机挂载的网络驱动器 Z 盘 \\10.155.0.81\network 上:
1、远端服务器 81 设置:
(1)确保服务项中开启了 tcp/ip netbios helper 服务(默认是开启的):
(2)开放网络访问共享目录端口:
windows 防火墙开放入站访问策略 139、445 端口。
(3)把需要同步的 network 目录共享出来:
2、本地服务器 80 设置:
(1)新建网络映射驱动器:
1)映射:
2)映射成功:
(2)双击绿色的图标,进行备份策略的配置:
1)选项设置:
A、
B、
2)比较设置:
A、
B、
3)过滤器设置:
A、
B、
4)同步设置:
A、
B、
(3)手动同步:
提示:
上图的手动同步每次同步前需要指定目标目录,否则无法同步。
可以将配置为文件,方便以后手动同步时使用,也方便编辑,方便同时开多个不同的同步对进程进行同步。
(4)另存为批处理作业,自动同步:
1)另存为批处理作业到桌面:
2)保存之后如下图(选中后点击右侧的"同步"可以进行手动同步):
3)双击桌面上的红色快捷方式,把上图中的配置文件拖到命令行框里,设置同步的时间间隔,点击开始,开始同步:
提示:可以同时开多个不同的同步对进程进行同步,默认的空闲时间是10s(亲测一个小时之内可用,太大可能监测会失效(12个小时))。
为了方便可以将设置为定时任务,但不能使用网络驱动器,否则会因无法验证用户而同步失败。
4)然后,会在右下角的任务栏中出现红色的图标:
11.4、FreeFileSync的优缺点:
1、优点:
(1)同步的最小时间间隔可以精确到秒级。
(2)可以设置单向或双向同步。
2、缺点:
服务器重启后,需要手动启动红色的同步软件,并鼠标单击开始按钮,否则无法开始同步。