Syncthing(文件同步)与进程守护
本文将实现
本地文件夹与腾讯云服务器同步,保护自己的数据。Syncthing默认即时同步,不要生成Syncthing日志或会频繁修改的内容(如.git, node_modules, .venv等)在同步文件夹中,否则一直同步每一次修改,导致浪费大量cpu和储存。(作者就用
nohup在其中生成日志,导致陷入同步会更新日志 -> 日志更新又需要同步 -> ...的死循环,切记)
Syncthing是非常优秀的文件自动同步软件,github有40k star,可以实现:
- 本机不同文件夹文件同步,保证文件及时同步到不同分区或硬盘,保护数据,避免损坏
- 不同设备间文件同步,需联网,局域网也行。
- 加密后同步,同步方也无法看到数据,彻底保护数据
一.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(数据传输端口)
客户端配置
默认配置即可
软件设置
- 登录web管理界面,设置登录账号,密码(非常重要),同时服务器端需要勾选
使用加密连接到图形管理界面,这会使用随机生成的ssl证书。当然后面域名备案好后可以修改。
2. 在服务器端显示设备ID, 复制到客户端,配对设备
- 添加要共享的文件夹,勾选上要分享给的设备,两边都要勾选上
- 在客户端设置
仅发送,服务端设置仅接受,确保单向同步,否则,双向同步在服务器被攻击下会影响本地内容,导致本地被植入病毒,或本地内容消失
- 最后在服务端开启版本控制功能,就可以避免误删导致数据消失喽。这样在本地文件夹内新建或修改一个文件,就会立马同步到服务器啦,该方法非常简单,在后台占用低,非常推荐。
二. 进程守护
部署Syncthing简单,但想开机自启动,自动重启,持久化运行,这些功能Syncthing是没有自带的。这也是很多运维服务缺失但又必不可少的功能。因此学习如何为自定义程序启动进程守护就很有必要了。
1.Docker
通过容器部署确实是非常方便,但是很多老软件并没有提供官方docker镜像,而特意去为其构建镜像并不可取。当然为自己编写的软件构建docker还是非常推荐的。
2. Supervisor
Supervisor是一个命令行形式的进程监控软件,推荐使用方式为配合1Panel可视化使用。真的无敌方便。
3. service + systemctl
挺麻烦的操作,但兼容性强,docker和supervisor底层也是用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…