![如何从命令行配置 Syncthing 以与具有特定 ID 的另一台计算机共享文件夹?](https://linux22.com/image/1580606/%E5%A6%82%E4%BD%95%E4%BB%8E%E5%91%BD%E4%BB%A4%E8%A1%8C%E9%85%8D%E7%BD%AE%20Syncthing%20%E4%BB%A5%E4%B8%8E%E5%85%B7%E6%9C%89%E7%89%B9%E5%AE%9A%20ID%20%E7%9A%84%E5%8F%A6%E4%B8%80%E5%8F%B0%E8%AE%A1%E7%AE%97%E6%9C%BA%E5%85%B1%E4%BA%AB%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%9F.png)
如何从命令行配置 Syncthing 以与具有特定 ID 的另一台计算机共享文件夹?
你好,
经过深入研究,我发现在 Linux 上从命令行使用 Syncthing 似乎是可行的,但需要编辑配置文件或使用 REST API。
如何配置 Syncthing 以与具有特定 ID 的另一台计算机共享服务器计算机上的特定文件夹?
维萨
平台:Linux
限制:寻找不使用 GUI 的可编写脚本的解决方案
答案1
我认为使用以下命令您应该能够为此编写一个脚本。
我们有一台本地机器和一台服务器。我假设您有服务器的 ssh 访问权限。
使用以下方式获取您的 ID 和服务器的 ID:
syncthing cli show system | jq .myID
在服务器上
syncthing cli config devices add --device-id $LocalID
在本地机器上
syncthing cli config devices add --device-id $ServerID
获取文件夹 ID
syncthing cli config folders list
检查它是否是预期路径(例如在循环中)
syncthing cli config folders $folderID dump-json | jq .path
或者转储整个配置(syncthing cli config dump-json
)并从那里选择文件夹
syncthing cli config dump-json | jq '.folders[] | select(.path == "/home/you/your/path") | .id'
现在与服务器共享此文件夹
syncthing cli config folders $folderID devices add --device-id $ServerID
剩下的唯一一件事就是,您必须接受服务器上的共享文件夹。(因为我还没有找到正确的命令。也许你会?)
答案2
我找到了解决您问题的方法。我在此要点中记录了如何解决此问题:https://gist.github.com/Jonny-exe/9bad76c3adc6e916434005755ea70389
如果你不想阅读整个内容,以下是主要命令:
syncthing cli config devices add --device-id $DEVICE_ID_B
syncthing cli config folders $FOLDER_ID devices add --device-id $DEVICE_ID_B
syncthing cli config devices $DEVICE_ID_A auto-accept-folders set true
这些命令的解释如下
答案3
抱歉,我也找不到这个问题的答案。我能做的最好的就是打开 SSH 隧道,这样我就可以从本地计算机临时访问服务器的 Web GUI:
ssh -L 8080:localhost:8384 your.host.name
然后您可以从 http://localhost:8080 访问远程 Web GUI