FreeFileSync 一款开源的文件同步软件

FreeFileSync 用户手册:

RealTimeSync 实时同步

— 自动实时同步 —

当检测到文件改变或者文件夹出现,软件就会自动运行同步。

RealTimeSync 直接从操作系统接收更改通知,以避免开销反复轮询更改。 每次在受监控的目录或其子目录中创建 / 更新 / 删除文件或文件夹时,RealTimeSync 等到用户配置的空闲时间 (在此期间未检测到进一步的更改),然后运行同步。 这可确保开始同步时受监控的文件夹不会被大量使用。

示例:使用 FreeFileSync 进行实时同步

启动位于 FreeFileSync 安装目录中的 RealTimeSync.exe 并 输入您要监控的文件夹。 您可以导入 ffs_batch,而不是手动执行此操作 通过 菜单文件 → 文件 → 打开 或只需通过 拖放 即可。 RealTimeSync 不仅会提取所有与同步相关的目录, 但还会设置终端在每次检测到更改时执行 ffs_batch 文件。 现在按 开始 开始监控。

RealTimeSync main window
 
备注
  • 命令行并应该屏蔽进度。如果你调用了一个脚本任务,请保证它不会弹出对话框。更多信息可以参考 命令行调用同步
  • 当你把一个 ffs_real 配置文件当做 RealTimeSync.exe 的第一个参数的时候,RealTimeSync 会 跳过显示对话框 并立即开始监控文件(夹)变更。
    这也可以配置到系统自启动中:
     
    "C:\Program Files\FreeFileSync\RealTimeSync.exe" "D:\Backup Projects.ffs_real"
  • 你也可以把 ffs_batch 文件作为第一参数, RealTimeSync 会使用默认参数把它自动转换成 ffs_real 配置(比如:空闲10秒后开始运行)。
  • RealTimeSync 不需要你手动启动 FreeFileSync。这也可以用在其他场景下,比如当文件夹变更之后发送邮件。

示例: 插入 U 盘时自动同步

把 ffs_batch 配置文件保存到 U 盘根文件夹,比如 H:\ ,然后在 U 盘插入的时候运行这个配置脚本。 注意,不要使用 U 盘的盘符 H:\ (因为这个盘符可能会变), 请使用它的盘名 ,比如“xxx的 U 盘”

配置 RealTimeSync :
 
Monitor USB stick insert
"Backup" 是我们示例中的盘名。


H:\Data 文件夹可以访问之后,RealTimeSync 会运行 U 盘上的同步脚本。当 H:\Data中的文件有更改的时候 RealTimeSync 也会运行。
备注
更改文件的完整路径和系统记录的更改通知(创建、更新和删除)会被记录到配置文件的 %change_path%%change_action%
它们仅对 RealTimeSync 可见。

实例: 输出文件和文件夹变更记录到记录文件

把所有的文件变更按条目写入到log文件:(Windows)
echo %change_action% %change_path% >> %csidl_Desktop%\log.txt

把所有的文件变更按条目写入到log文件:(Linux/macOS)
echo $change_action $change_path >> ~/Desktop/log.txt

限制:

  • 如果多个文件(夹)同时发生变更,仅有第一个写入的文件会被记录到 %change_path%

  • 当 RealTimeSync 同步文件的时候会暂停文件变更监测。

  • RealTimeSync 依赖操作系统的文件变更通知。 有些情况下操作系统并不会通知变更,比如网络路径不可写、网络驱动错误。 这些有问题的驱动/路径并不会返回错误代码,只是不执行该同步操作。

在文件同步的时候,FreeFileSync 会产生一个文件记录,这也会引发一次文件变更通知。 因此,同步的过程中需要停止文件变更监测,防止进入监测同步循环。 另外,除了 FreeFileSync 自己的记录文件外一般不会在同步的时候发生变更,毕竟文件同步时间都是用户指定的空闲时间。 任何情况下,同步过程中的文件变更会在下次运行的时候同步。