跳转至

文件夹同步

文件夹同步

更新日期: 2020-05-14


1. 概述

文件夹同步,是指对于系统中的两个位置的文件夹,使用某种手段使它们的内容保持同步,当某一个文件夹的内容变化时,另一个会自动跟着变化。这个同步可以是同一个系统中的两个文件夹,也可以是本地机器与远程机器之间的两个文件夹,可以是单向同步也可以是双向同步。
有点类似DataBase的自动备份。

2. 同步盘OneDrive

使用Win10以上系统的话会很方便,尤其是使用多台安装了Windows10/11操作系统的机器时,尤其方便。在一个设备上更新的文件会同步反应到其它机器上去。
订阅了Office365的情况下,OneDrive有1T的空间,完全够用了,即使是免费情况下,也有5G的使用空间。

但是OneDrive也有一些不足之处。

  • (1) 文件夹比较特殊,虽然看起来是跟普通文件夹一模一样,但是实际使用时会有一些限制。
  • (2) linux版本很难用,经常出莫名其妙的问题。并且不是微软官方维护的版本。

比如配置为Tomcat的项目发布目录时,会不识别里面的文件。当然绝大多数软件,配置使用OneDrive的目录都是没有问题的。

OneDrive的文件夹可以设置使用下面两种模式:

  • (1) 在线模式:这种模式下,文件不占用磁盘空间。只有需要使用文件时,才会去下载这个文件,使用完毕后可以释放磁盘空间。
  • (2) 本地模式:这种模式下,文件将一直存在于磁盘上,并时刻与最新版本保持一致。

如果磁盘空间比较紧张,可以定时对在线模式的文件夹进行空间释放。

3. 使用FreeFileSync进行同步

FreeFileSync是一个免费开源的软件。专门用来进行文件和文件夹的同步,并支持多种操作系统。
sync

安装完成后的界面如下:

sync

本地文件夹只需要把文件夹拖拽进去就行了。打开那个云图标的按钮之后,可以选择连接到远程机器:
sync

对linux比较熟悉的小伙伴们肯定听说过SFTP。

3.1 配置示例 (Windows10 <=> linux服务器)

现在我们有两台机器:

  • (1) 手边办公桌上的机器,装有Windows系统
  • (2) 安装着CentOS系统的linux服务器,在某机房里面放着 (※能够通过SSH连接上)

然后我们要同步这两个文件夹:

  • Windows10下:桌面/TestFolder
  • Linux下:/tmp/test123

Note

这两个文件夹要先创建出来,否则会出错

3.1.1 配置Win10侧文件夹

直接把桌面上的TestFolder拖到左侧窗口即可。

sync

3.1.2 配置linux侧文件夹

首先点击右侧的云图标。

sync

然后选择SFTP,并配置服务器连接信息和文件夹路径。

sync

3.1.3 开始同步

sync

可以看到,由于我的本地文件夹中有随意创建的几个文件,linux上面是空的,所以第一次同步时是把文件复制到linux上去。

出下面这个框就表示同步完成了:

sync

此时去查看linux服务器的目录,会发现就有了那几个文件了。

3.2 设置同步选项

点击画面上的这三个按钮中的任意,一个,可以进入设置界面:

sync

能够设置的选项也是一目了然:

sync

这里可以设定包含和除外文件,通常把一些无所谓,我们也不想看到的文件设置为除外。

sync

这里可以设定单向同步或者是双向同步。

sync

3.3 开启实时同步

有时候,我们想达到这样一种效果:

我们每次修改文件的时候,不用来这个软件这里点按钮进行同步。而是实时帮我们自动同步。

这个功能其实是通过在后台保持一个进程,来定时执行同步操作来实现的。每当检测到文件夹中的内容有变化,就会执行同步操作。

Note

FreeFileSync只支持本地机器之间的实时同步,不支持SFTP和FTP协议下的实时同步。 在下面的步骤中会生成一个批处理文件,直接双击批处理文件可以进行手动同步。这个支持SFTP和FTP。

3.3.1 将当前的同步方案保存为批处理文件

选择图中的【保存为批处理文件】按钮。

sync

设置为无视错误,最小化启动和自动关闭进度窗口。这样定时任务就不会一直卡在进度界面上。

sync

保存的文件示例:

sync

此时可以关掉这个软件了。

3.3.2 开始实时同步

打开这个软件的另外一个程序【RealTimeSync】,是一个红色的图标。

sync

将上面保存的批处理文件拖到里面。

sync

此时可以看到我们在文件中配置的内容都被自动填充上去了。

sync

而定时的间隔为10秒,点击开始按钮就开启了实时同步。
此时,我们可以修改下文件夹的内容,看看在10秒左右是否会真的进行自动同步。