目 录CONTENT

文章目录

syncthing服务器文件同步(安装使用)

gsh456
2025-01-17 / 0 评论 / 0 点赞 / 51 阅读 / 0 字

最近领导要求医院的文件要进行同步更新,避免医院服务器炸了,数据库备份还有服务文件全部都没了。

调研了下各种方案 rsync 只能linux,windows虽然可以通过一些方式部署,但是不是原生的,挺麻烦,我们产品上线几十家医院,同步工具的首要目标是,安装部署简单。

在众多产品中选择了syncthing,windows,linux,docker,mac,安卓,基本上全平台支持,但是最重要的是 windows+linux。于是各个平台部署了下,记录下文档,以便自己回顾。

下载地址地址:https://github.com/syncthing/syncthing/releases

安卓版地址:https://github.com/syncthing/syncthing-android/releases

基本概念

syncthingt有几个重要的默认端口
8384是web管理页面
22000 是同步端口

安装

1.windows版安装

windows安装很简单,解压后运行 syncthing.exe。运行的时候会出来一个cmd窗口,里面会描述syncthing的端口信息。

只有运行成功后,syncthing 才会在用户的文件夹生成配置。

windows版的配置文件在 C:\Users\用户名\AppData\Local\Syncthing\ 下,config.xml 是配置文件。

<!--建议将127.0.0.1修改为0.0.0.0这样其他机器也能访问->
<address>0.0.0.0:8384</address>

运行成功后,通过浏览器访问 127.0.0.1:8384 即可访问web管理页面,后面会详细介绍其具体用法,这章只介绍安装。

2.linux版安装

下载tar包,例如 syncthing-linux-amd64-v1.29.2.tar.gz ,这里 1.29.2 是版本号。

上传到linux服务器,使用 tar -zxvf syncthing-linux-amd64-v1.29.2.tar.gz 解压后,其实就可以直接运行了,但是我的习惯是放到指定文件夹下 mv syncthing-linux-amd64-v1.29.2 /usr/local/syncthing ,然后进入目录 cd /usr/local/syncthing,直接运行

./syncthing 前台模式运行(首次运行建议使用)

nohup syncthing &> /dev/null & 简单后台模式运行

只有运行成功后,syncthing才会在默认位置创建配置文件,linux版的,位置根据当前用户的位置而改变,启动日志里面也能看到

root用户在 /root/.local/state/syncthing

其他用户的在 /home/user/.config/syncthing

<!--建议将127.0.0.1修改为0.0.0.0这样其他机器也能访问->
<address>0.0.0.0:8384</address>

使用浏览器 ip:8384 即可访问syncthing的web管理页面,后面会详细介绍其具体用法,这章只介绍安装。

3.安卓版安装

安卓版地址:https://github.com/syncthing/syncthing-android/releases

下载直接安装即可。

4.docker版安装

镜像 syncthing/syncthing:latest

官方docker安装方式 :https://github.com/syncthing/syncthing/blob/main/README-Docker.md

docker Compose

---
version: "3"
services:
  syncthing:
    image: syncthing/syncthing
    container_name: syncthing
    hostname: my-syncthing
    environment:
      - PUID=1000
      - PGID=1000
      - STGUIADDRESS=0.0.0.0:8384
    volumes:
      - /wherever/st-sync:/var/syncthing
    ports:
      - 8384:8384 # Web UI
      - 22000:22000/tcp # TCP file transfers
      - 22000:22000/udp # QUIC file transfers
      - 21027:21027/udp # Receive local discovery broadcasts
    restart: unless-stopped
    healthcheck:
      test: curl -fkLsS -m 2 127.0.0.1:8384/rest/noauth/health | grep -o --color=never OK || exit 1
      interval: 1m
      timeout: 10s
      retries: 3

其中 STGUIADDRESS=0.0.0.0:8384 代表任意ip访问。

使用浏览器 ip:8384 即可访问syncthing的web管理页面,后面会详细介绍其具体用法,这章只介绍安装。

使用

快速使用

1. 基础配置

在最开始也介绍了,8384端口是web管理页面,22000端口是默认同步端口。在开启任意端口访问后,使用web管理页面,为了安全建议配置账号和密码了。如果未设置,也可以点击右上角的 操作-->设置 --> GUI 设置密码。

2.添加文件夹

添加文件夹是为了更加方便同步,例如 A服务器 同步到 B服务器 的指定文件夹,那么需要先在B服务器设置文件夹。A服务器也设置文件夹。那么syncthing就会在两个服务器的两个文件夹中同步文件,要不然同步到默认文件夹。

A服务器添加文件夹

B服务器添加文件夹

3.添加远程设备

可以在B服务器或者A服务器操作,例如在 B服务器操作,

先复制A服务器的设备id,在A服务器的 syncthing的web管理页面,点击右上角的操作-->显示id 复制即可

然后在 B服务器的 syncthing的web管理页面,右下角点击添加远程设备。

这样就添加成功了

然后在B服务器或者A服务器,添加一个文件测试下同步效果

可以看到文件同步成功。

最主要的是 A服务器和B服务器 ,要创建一样文件夹id的文件夹,如果不一样,后面要按照A服务器和B服务器的syncthing的提示,分别在两个服务器上确定同步后系统自动创建了。

以上就是sync的快速入门,以上场景也适合 个人电脑和服务器,个人电脑与nas(nas需要能直接访问到)之间的同步,只需要将B服务器的概念改为个人电脑即可。但是要想使用好,还有一些更加详细的配置,例如过滤不需要同步的文件(例如 word的临时文件),还有单项同步等。

进阶使用

同步方向(发送方和接收方)

一般的同步是双向的,就是 B服务器,删除一个文件后,经过 syncthing同步后,A服务器也会删除同样的文件

  1. 发送和接收: 双向同步,A删除,B也同步删除。

  2. 仅接收:不同步删除的文件,A仅接收,B发送和接收,B删除文件后,A不会删除。

  3. 仅发送:例如A仅发送,B发送和接收,B删除文件后,A不会删除。

  4. 其他组合,可以尝试下,调试出适合自己的同步模式。

2. 文件过滤(忽略模式) 例如我的代码目录中,有源码和编译包,编译包(源码编译出来的)不需要同步,只同步源码即可。 未设置过滤前 230M, 过滤条件 可以看到设置忽略模式后,文件大小大幅减少,只有代码了。 3. 版本控制

文件过滤(忽略模式)

版本控制

0

评论区