如何从命令行配置 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