Syncthing(文件同步)与进程守护

767 阅读3分钟

Syncthing(文件同步)与进程守护

本文将实现本地文件夹腾讯云服务器同步,保护自己的数据。

Syncthing默认即时同步,不要生成Syncthing日志或会频繁修改的内容(如.git, node_modules, .venv等)在同步文件夹中,否则一直同步每一次修改,导致浪费大量cpu和储存。(作者就用nohup在其中生成日志,导致陷入同步会更新日志 -> 日志更新又需要同步 -> ...的死循环,切记)

Syncthing是非常优秀的文件自动同步软件,github有40k star,可以实现:

  1. 本机不同文件夹文件同步,保证文件及时同步到不同分区或硬盘,保护数据,避免损坏
  2. 不同设备间文件同步,需联网,局域网也行。
  3. 加密后同步,同步方也无法看到数据,彻底保护数据

一.Syncthing

Syncthing在服务端和客户端都需要安装,使用sudo apt install syncthing即可安装成功

服务端配置

默认地址为localhost,所以在服务端需配置开放管理界面到0.0.0.0。

先首次运行syncthing生成配置文件,再关闭程序,打开~/.config/syncthing/config.xml找到32行将127.0.0.1:8384修改为0.0.0.0加你想要的端口。 防火墙打开8384(管理WEB), 22000(数据传输端口)

客户端配置

默认配置即可

软件设置
  1. 登录web管理界面,设置登录账号,密码(非常重要),同时服务器端需要勾选使用加密连接到图形管理界面,这会使用随机生成的ssl证书。当然后面域名备案好后可以修改。

1735181523.png 2. 在服务器端显示设备ID, 复制到客户端,配对设备

  1. 添加要共享的文件夹,勾选上要分享给的设备,两边都要勾选上

image.png

  1. 在客户端设置仅发送,服务端设置仅接受,确保单向同步,否则,双向同步在服务器被攻击下会影响本地内容,导致本地被植入病毒,或本地内容消失

image.png

  1. 最后在服务端开启版本控制功能,就可以避免误删导致数据消失喽。这样在本地文件夹内新建或修改一个文件,就会立马同步到服务器啦,该方法非常简单,在后台占用低,非常推荐。

image.png

二. 进程守护

部署Syncthing简单,但想开机自启动,自动重启,持久化运行,这些功能Syncthing是没有自带的。这也是很多运维服务缺失但又必不可少的功能。因此学习如何为自定义程序启动进程守护就很有必要了。

1.Docker

通过容器部署确实是非常方便,但是很多老软件并没有提供官方docker镜像,而特意去为其构建镜像并不可取。当然为自己编写的软件构建docker还是非常推荐的。

2. Supervisor

Supervisor是一个命令行形式的进程监控软件,推荐使用方式为配合1Panel可视化使用。真的无敌方便。 转存失败,建议直接上传图片文件

3. service + systemctl

挺麻烦的操作,但兼容性强,dockersupervisor底层也是用service来启动监管服务器。具体service怎么写可以参考/usr/lib/systemd/system/, 自己写的service放/etc/systemd/system/

# 查看所有服务的状态
$ systemctl status
# 管理service
$ systemctl start/stop/restart/enable/

三.参考文献

blog.jimmyho.net/archives/12… 1panel.cn/docs/user_m… www.cnblogs.com/jackadam/p/… forum.syncthing.net/t/ssl-certi… blog.csdn.net/m0_45406092…