赞
踩
一款开源免费的数据同步工具,基于P2P的跨平台文件同步工具,通过tcp建立设备连接,再通过TLS进行数据安全传输,支持公网与局域网搭建、支持单双向同步与历史版本控制--“后悔药”(备份机未感染情况下,历史版本理论上可以防止勒索病毒的,可惜没实战测试过)、支持Android
、Linux
、Windows
、Mac
等系统,且服务器资源占用小。
本文以两台centos7.8系统配置syncthing-1.16.1为例,搭建局域网单向的文件实时同步机制(syncthing并非真正意义的实时,不像Inotify通过监控触发,而是通过高频定时任务触发),具体配置实例如下:
服务器名称 | IP地址 | 安装工具 | 系统版本 | 同步操作目录 | 历史版本目录 |
源服务器 | 172.16.42.53 | syncthing-1.16.1 | centos7.8 | /root/source/file | 无 |
备份服务器 | 172.16.42.65 | syncthing-1.16.1 | centos7.8 | /root/backup/file | /root/history/version |
#检测防火墙状态
systemctl status firewalld
#开启防火墙8384 、22000 tcp端口若防火墙禁用的请略过命令)
firewall-cmd --permanent --add-port=8384/tcp --zone=public
firewall-cmd --permanent --add-port=22000/tcp --zone=public#开启防火墙21027、44647、37269 udp端口
firewall-cmd --zone=public --add-port=21027/udp --permanent
firewall-cmd --zone=public --add-port=44647/udp --permanent
firewall-cmd --zone=public --add-port=37269/udp --permanent#重启防火墙
firewall-cmd --reload
端口说明:
8384 (TCP)是Web访问控制端口
22000 (TCP) 是节点访问端口
21027 (UDP) 关于本地发现的端口
44647 (UDP)
37269 (UDP)
Syncthing
官网:点击进入
#df -hl 查看磁盘分区空间,确定好备份存放目录(本文为演示,备份文件与历史版本文件都存放在root分区下)
df -hl
#新建syncthing目录
mkdir ./syncthing
cd ./syncthing
#下载syncthing
wget https://github.com/syncthing/syncthing/releases/download/v1.16.1/syncthing-linux-amd64-v1.16.1.tar.gz
#解压缩
tar -zxvf syncthing-linux-amd64-v1.16.1.tar.gz
cd ./syncthing-linux-amd64-v1.16.1
#初次运行syncthing
./syncthing
# 初次运行成功后,ctrl + c 停止运行syncthing
ctrl + c
结果如下,代表启动成功
此时syncthing会生成默认配置文件,默认存放路径 /root/.config/syncthing/(我是root用户登录)
#修改syncthing配置文件放开ip访问限制,syncthing默认仅支持本机访问web管理端
vi /root/.config/syncthing/config.xml
#找到以下位置,将 127.0.0.1:8384 改成 [指定ip]:8384 或 0.0.0.0:8384,建议指定ip更安全
# 后台方式运行syncthing
nohup syncthing &> /dev/null &
这里采用的systemd服务方式设置开机自启
#检测机器是否能用systemd服务,命令ps aux
#查看pid=1的进程是否是/usr/lib/systemd/systemd --switched-root --system --deserialize 22
ps aux
#syncthing自带有syncthing@.service文件
#重名syncthing@.service为syncthing@root.service(@后面改为当前系统登录的用户名,笔者是root用户登录,注意你的syncthing安装路径)
mv /root/syncthing/syncthing-linux-amd64-v1.16.1/etc/linux-systemd/system/syncthing@.service syncthing@root.service
#复制syncthing@root.service至/etc/systemd/system下
cp /root/syncthing/syncthing-linux-amd64-v1.16.1/etc/linux-systemd/system/syncthing@root.service /etc/systemd/system/
#编辑auto_start.service,修改ExecStart=/usr/bin/syncthing serve --no-browser --no-restart --logflags=0为ExecStart= /root/syncthing/syncthing-linux-amd64-v1.16.1/syncthing serve --no-browser --no-restart --logflags=0
vi /etc/systemd/system/syncthing@root.service
# 重启systemd服务,并将syncthing@root.service设置开机自启动
systemctl daemon-reload
systemctl enable /etc/systemd/system/syncthing@root.service
① 在浏览器输入 http://服务器IP:8384 进行访问,初入web控制端界面如下
② web管理端默认是不做身份验证的,因此会弹出安全提示框,接下来为web管理端备注设备名、配置用户名/密码、配置局域网本地访问模式
③ 备注设备名
④ 配置用户名/密码
⑤ 配置局域网本地发现模式
⑥ 完成源服务器与备份服务器的配置后,刷新地址栏,输入刚刚配置的用户名/密码,界面瞬间清新
① 查看备份服务器的设备标识ID(记住它)
② 源服务器web端“添加远程设备”,并选中备份服务器的设备标识ID(若没有自动刷新出来,直接拷贝进去)
③ 稍等片刻后,备份服务器上会收到添加设备的请求确认弹框,点击添加并保存
① 源服务器中添加共享文件夹,并配置共享文件夹的路径
② 再选择共享的远程设备
③ 最后进行高级配置并保存:配置单向同步(仅发送)、配置实时监控扫描(默认启用)、配置完整扫描间隔(单位秒,默认1h)
④ 稍等片刻后,备份服务器会收到添加共享文件夹的请求确认框,点击添加
⑤ 配置共享同步文件夹的存放路径
⑥ 配置版本控制:选择简易版本控制,配置历史版本存放路径,配置同一文件历史版本的保留数量,再配置历史版本的清除间隔,本文设置的1年
⑦ 最后进行高级配置并保存:取消实时监控(备份服务器不需要监控更改)、写大完整扫描间隔(备份机不需要完整扫描)、选择仅接收模式
综合上述完成了源服务器与备份服务器的相关配置:局域网、添加远程设备、添加同步共享文件夹、配置单向同步、配置历史版本
本文教程演示环境,测得的同步时延大概在10s左右。(以下历史版本测得结果:针对的文件进行版本备份,空文件夹无版本备份)
① 测试添加文件夹、文本(测得结果:新增数据无历史版本)
② 测试删除空文件夹、文本(测得结果:空文件夹无历史版本)
③ 测试重命名空文件夹、文本(测得结果:空文件夹无历史版本)
④ 测试更改文本内容
⑤ 测试重命名多层级含文本的文件夹(测得结果:含文本的文件夹,历史版本备份整个旧文件夹)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。