近来我频繁使用服务器来跑项目,使用 scp 不断在本地和远程之间传文件,这搞得我有点心烦。因此,我在想有没有办法可以实现自动代码同步,这不,idea有啦。
问题描述
- 本地 win11系统
- 远程 CentOS7.9系统
- 实现本地和远程之间文件双向同步
Syncthing 下载与安装
当然除了 Syncthing 以外,还有其他同步库,比如 Resilio Sync、 Nextcloud 等。我选择 Syncthing 主要是因为部署简单方便,也能完成 Win 和 Liunx 系统之间的文件同步。
首先我们要在双端都安装 Syncthing ,把 Win 和 Liunx 版本的 Syncthing 都下载到本地。官网下载地址:https://syncthing.net/downloads/
- Window 系统
直接解压启动即可。 - Liunx系统
# 本地执行,传输库文件到远程服务器 # scp 本地下载地址/syncthing-linux-amd64-v1.27.7.tar.gz 用户名@服务器地址:保存路径 scp D:/Download/syncthing-linux-amd64-v1.27.7.tar.gz hzq@124.42.31.44:~/ # 远程执行 tar xzf syncthing-linux-amd64-v1.27.7.tar.gz cd syncthing-linux-amd64-v1.27.7/ sudo cp syncthing /usr/bin/
启动 Syncthing
-
win系统
点击 Syncthing 中的 exe 文件即可完成。Ctrl+c
退出。 -
liunx系统
syncthing ctrl+c
远程服务器开启公网监听和自启动
请注意你的配置文件路径可能和我的路径不一致, syncthing -paths
查看配置文件路径。
接着执行命令:
# 远程执行
vim /home/hzq/.local/state/syncthing/config.xml
# 将127.0.0.1修改为0.0.0.0,保存
#防火墙放行8384端口
firewall-cmd --zone=public --add-port=8384/tcp --permanent
firewall-cmd --reload
syncthing
注意: 如果是云服务器的话,需要放行8384端口。
文件夹同步
举例:同步远程liunx服务上的 ~/wechat/
文件夹。
登录到 http://ip_address:8384
和本地的syncthing gui后,你只需要做两件事:添加远程设备和添加同步文件夹。
如何添加设备和文件夹,gui已经详细说明了,很简单方便,一步步来就好。
文件夹同步测试
远程新建一个文件test.txt
,在本地随便写点东西,在远程 liunx 服务端查看写入的东西。
touch test.txt
####
# 本地win向文件中写入ok,over
# ok,over
####
cat test.txt # 若可以看到ok,over说明同步测试成功,(*^▽^*)
如果遇到什么问题,可以在本篇文章下留言,看到基本上都会回答的。可以的话,顺便点点关注。