客户需求:
需要显存一台数据存储服务器,配置要求用于备份公司员工数据:
数据类型包含,办公文档,图片信息,和其他数据,要求定时备份,文档版本记录,删除覆盖文档,可恢复追回,员工账号分别设置不同级别的文件夹,不同级别的权限分配。
软件实现,基于windows和linux的操作系统,搭建Syncthing,linux作为服务端,windows客户端分别创建
Syncthing
Syncthing是一个开源的文件同步客户端与服务器软件,采用Go语言编写。它可以在本地网络上的设备之间或通过Internet在远程设备之间同步文件,使用了其独有的对等自由块交换协议。
官方下载
https://syncthing.net/downloads/
配置步骤
linux 平台(使用vmware 虚拟机安装ubuntu20.04 )
安装软件包步骤省略,登录控制台(这里的linux是无桌面版的,需要开启远程访问web界面)
参考官方文档如下:
The following child elements may be present:
address (mandatory: Exactly one element must be present.)
Set the listen address. Allowed address formats are:
IPv4 address and port (127.0.0.1:8384)
The address and port are used as given.
IPv6 address and port ([::1]:8384)
The address and port are used as given. The address must be enclosed in square brackets.
Wildcard and port (, , 0.0.0.0:12345[::]:12345:12345)
These are equivalent and will result in Syncthing listening on all interfaces via both IPv4 and IPv6.
UNIX socket location (/var/run/st.sock)
If the address is an absolute path it is interpreted as the path to a UNIX socket.
则执行
./syncthing serve --gui-address=0.0.0.0:8384
web界面访问
添加同步的文件夹即可。
更改或删除文件夹都会双向进行同步,也可设置版本控制,删除或者修改的文件,会放入指定的文件夹。
此处设置的是5个简单的版本控制
windows平台(本地物理机win10系统)
安装软件包步骤省略登录控制台,创建同步的文件夹即可
另外介绍其他两种代码管理工具,也可以适用于文件备份和版本可控制,比较适合开发人员,相对于客户业务操作人员就比较陌生。
SVN
Apache Subversion(简称SVN,svn),一个开放源代码的版本控制系统
服务端
下载server版本
https://www.visualsvn.com/files/VisualSVN-Server-5.4.0-x64.msi
安装后打开
鼠标右键新建仓库命名为test
创建用户admin
网页端登录查看如下
svn客户端
客户端下载链接
https://tortoisesvn.net/downloads.html
安装完毕后,检出服务端项目
空的仓库中拷贝测试文件,鼠标右键空白处,提交即可
网页版文件已经同步到服务端如下图
修改或者新增文件,需要手动操作,鼠标空白处选择commit,即可,删除本地文件,则服务端不受影响,服务端文件被删除,则可以利用客户端仓库副本进行恢复。
GIT
git是用于Linux内核开发的版本控制工具。与CVS、Subversion一类的集中式版本控制工具不同,它采用了分布式版本库的作法,不需要服务器端软件,就可以运作版本控制,使得源代码的发布和交流极其方便。git的速度很快,这对于诸如Linux内核这样的大项目来说自然很重要。git最为出色的是它的合并追踪(merge tracing)能力。
(搭建步骤大致和svn相同,同步到服务端文件,每次都需要要手动点提交。)
搭建步骤参见官方: