Txing

欢迎来到 | 伽蓝之堂

0%

利用syncthing建立Linux服务器与本地Win10的同步文件夹

利用syncthing建立Linux服务器与本地Win10的同步文件夹

Background

由于最近把本地的试验程序搬到了服务器上(Linux服务器上配置Anaconda3以Pytorch-RL环境),现在的试验结果就自然地在运行后保存在了服务器上(图片、数据)。

由于没有配置服务器端的可视化界面,就没法查看结果了。如果利用pscp进行Linuxwindows的文件传输,等结果到了本地再查看,这样每跑一次实验就要单独传输一次,势必非常麻烦。

于是这里就迫切需求一种及时高效自动的linuxwindows10的文件传输方案。


经过一番调研,目前有这样几种方案备选:

1、在linux服务器端查看图片。这个方案需要使用到类似SimpleHTTPServer的服务,简单地说就是在通过浏览器在ip:8000口查看图片。这个方案仍然需要在运行完成之后单独再操作一步,虽然实现了查看图片的功能,但如果需要保存图片到本地,还是绕不开pscp的操作。

2、利用VNCserver将服务器端界面图形化。这是一个非常有吸引力的方案,因为图形化服务器端的意义不仅仅在于查看图片,跟在于今后其它文件操作都可以变得更加具体明确。但初尝试的过程中发现提供VNC服务的第三方软件很多,具体操作和配置看得眼花缭乱,莫衷一是。

3、把服务器的文件传回本地查看。既然要在服务器上查看图片这么麻烦,我们何不直接把图片传回本地的windows环境呢,到了windows下那还不是为所欲为啊。这一方案主要同样有很多的备选子方案:

  • 我们的老朋友pscp:每次使用都要输入一长串目录路径(本地和服务器的),让人身心俱疲。
  • rsync:支持增量备份的优秀镜像备份工具,网上的具体实施方案比较繁琐,依然莫衷一是。
  • syncthing:syncthing是个类似rsync的开运啊同步工具,支持windows, linux, Mac等不同的平台看来是个不错的选择。

syncthing: a wise choice

接下来我们选择syncthing,并尝试安装并配置

windows 10端:

  • 直接在syncthing官网可以下载到windows版本的安装包,直接解压点开exe即可完成安装。

Linux服务器端:

  • 第一步:在windows上下载好最新的安装包(我这里选择的是syncthing-linux-amd64-v1.2.2.tar.gz

  • 第二步:将安装包上传至服务器,具体操作参考Windows通过SSH向Linux服务器上传文件

  • 第三步:解压文件并安装。

    在新建的安装包所在目录中执行解压命令,并打开文件夹

    1
    2
    tar zxvf syncthing-linux-amd64-v1.2.2.tar.gz
    cd syncthing-linux-amd64-v1.2.2

    这里通过ls命令可以看到有一个可执行文件,现在先打开它用来生成我们需要更改的配置文件

    1
    ./syncthing

    等到看见类似如下字样的时候,表示启动完成,按Ctrl+c关闭

    1
    [QQAFC] 16:59:18 INFO: Detected 1 NAT service
  • 第四步:配置syncthing。由于syncthing默认是只允许本机访问,这里需要进行设置。大多数教程这里都会使用vim进行编辑,但是我的环境里没有vim,也有有sudo权限安装,因此参考这里的某教程里的方法,通过nano进行编辑

    1
    nano ~/.config/syncthing/config.xml

    这时会弹出一大片文本,但我们只需要找到下面这一段

    1
    2
    3
    <gui enabled="true" tls="false">
    <address>127.0.0.1:46554</address>
    </gui>

    再把前4段数字全部变成0,即0.0.0.0:46554(冒号后面的数字不用变)。然后按Ctrl+x退出编辑,在按y保存更改。

  • 第五步:再次运行syncthing

    1
    ./syncthing

    在浏览器输入

    1
    http://服务器IP:46554

    后面的数字是在第4步修改地址时看到的冒号后的数字,按下回车进行图形化的配置。

  • 第六步:图形化配置

    配置分为两部分:

    • 登录http://服务器IP:46554选择服务器端要共享的文件夹及路径。记录服务器端ID。
    • 另一台机器打开syncthing,自动打开桌面端配置页面,配置要共享的文件夹和路径。添加设备,粘贴服务器端ID,在服务器端点击同意,完成连接。

之后的设置比较简单这里给出参考不过多介绍:Syncthing同步设置教程