在Linux下想要对多台服务器做文件同步可以用功能强大的rsync工具,在windows下也有该工具,但今天介绍另外一款可以跨平台使用的文件同步工具,并且还是开源的。
主角登场:Syncthing
环境介绍:两台Windows server 2019
server888:192.168.6.3
client:192.168.6.4
client将从server888中同步文件,server888只发送,不接收更新,client只接收更新不发送。
下载syncthing for Windows版,解压后是这样的:

这是在server888服务器上操作,直接双击打开syncthing.exe文件,会默认打开一个网页:127.0.0.1:8384
所有的配置可以通过它提供的这个web界面来更改,大家可以自己研究一下,今天只要演示一下这款工具的工作流程及原理。
首先我对server端做了一下简单的配置,如web界面绑定的ip地址,端口号,默认端口是8384,可以根据自己的需要更改,这个端口只是用来打开这个web配置界面的,它实际的数据同步用的不是这个端口。还可以配置一下打开web界面的认证信息,所有的这些配置最终会保存在一个文件中,文件的路径在:
C:\Users\当前用户名\AppData\Local\Syncthing\config.xml文件中,如果端口改错了忘记了也可以通过这个文件改回来。如果修改了这个配置文件需要将服务重启一下,重启方式很简单,关闭再打开就好了。

如上图所示可以点右上角的操作来对服务器做配置。我这里添加了一个需要同步的目录,上图中左边的文件夹就是需要被同步的目录,这个目录的配置如下:

文件夹类型这里选择的是仅发送,因为这个是服务端,我们的目的就是对服务端做备份,所以只让他发送数据。相同的操作在客户端也操作一遍,只是在客户端不需要添加这个文件夹,添加文件夹的工作下一步再进行。
client端将默认的文件删除了,大概配置如下:

下面我们来配置让他们之间进行数据同步,首先点一下客户端右上角的操作按钮:

显示的ID如下图:

复制下这行ID号码,然后到服务端主页面,点击添加远程设备

然后将刚才复制的客户端ID贴进来:

设备名可以随便写,自己分得清楚就行了,然后点后面的共享按钮:

勾选上刚才创建的需要同步的这个目录,然后保存就完成了服务端的配置,下面来到客户端,将会看到如下图:

点击添加设备,如果你这里没有提示,你也可以手动的方式将服务端加进来,添加方式和上面一样,也是在添加远程设备下面的按钮中添加,这里就按照系统提示来操作:

给设备取个名字,我这里就取服务器的主机名,然后点保存,回到主界面:

将会看到提示说服务端需要共享文件夹给客户端,点击添加:

下面的文件夹路径是你客户端保存同步文件的路径,可以根据自己的环境设置,再点到共享:

将共享的服务器名字选上,点到后面的高级:

在文件夹类型一项选择仅接收,然后点保存返回到主界面:

将会看到服务端和客户端都会显示同步完成,只要服务端有文件变化客户端就会马上更新。
另外liunx端的配置方法类似,也是运行一个服务,然后通过web页面来配置,这里就不再演示了
其他细节功能大家有空慢慢研究吧。