我有:
我通过 SSH 连接到 IP 203.0.113.0 端口 1234 的 Linux 服务器
一台家用计算机(位于路由器后面),公共 IP 198.51.100.17,可以是 Debian 或 Windows+Cygwin
/home/inprogress/
同步文件夹(双向)最简单的方法是什么,有点像rsync
,有点像,但是使用文件系统观察器,以便每次修改文件时,都会立即将其复制到另一端? (即无需手动调用同步程序)
我正在寻找命令行/无 GUI 解决方案,因为服务器是无头的。
有 Linux/Debian 内置解决方案吗?
答案1
根据@Kusalananda的评论,我终于花了几个小时进行测试同步事物对于这个用例,它效果很好。它会自动检测双方的变化,并且复制速度非常快。
示例:假设您正在本地使用server.py
您最喜欢的记事本软件进行工作,您按下 CTRL+S(保存)。几秒钟后,它会自动复制到远程服务器上(没有任何弹出对话框)。
我注意到的一件很棒的事情是,您不必考虑使用 Syncthing 的家庭计算机和服务器的 IP:每个“设备”(计算机、服务器、电话等)都有一个唯一的 DeviceID,如果您共享与另一台设备的 ID,它会自动找出它们应该如何相互连接。
去做:
家庭电脑端(Windows或Linux):
使用普通的 Syncthing 浏览器内配置工具
VPS端:
首先使用端口转发连接VPS:
ssh <user>@<VPS_IP> -L 8385:localhost:8384
后一个选项会将 VPS 的 Syncthing Web 配置工具在端口 8384 上侦听的重定向到家庭计算机的端口 8385。
然后在 VPS 上运行:
wget https://github.com/syncthing/syncthing/releases/download/v0.14.52/syncthing-linux-amd64-v0.14.52.tar.gz tar xvfz syncthing-linux-amd64-v0.14.52.tar.gz nohup syncthing-linux-amd64-v0.14.52/syncthing &
然后在家用电脑的浏览器上打开http://本地主机:8385:这将是 VPS 的 Syncthing 配置!
我尝试过的其他解决方案:
SSHFS 使用本教程。请注意,在本教程中他们不使用sshfs-win但win-sshfs相反(这是两个不同的项目)。我两种都尝试了,但都无法正常工作(可能是我的 VPS 配置有问题)。
这里还有一个有趣的参考:https://softwarerecs.stackexchange.com/questions/13875/windows-sshfs-sftp-mounting-clients
我刚刚注意到的 Syncthing 的其他优点:
您可以减少
fsWatcherDelayS
从config.xml
到10
秒2
,以便在执行 CTRL+S 后,2 秒后(+上传时间,即小文本文件不到 1 秒)它在另一台计算机上如果您同步位于同一本地网络中的两台计算机(只需互相提供 DeviceID,无需关心本地 IP 地址),它将自动地请注意,它不需要通过互联网中转,但可以在本地处理。这很棒,并且允许
phone <--> computer
通过 WiFi 连接到同一家庭路由器的两者以非常快的速度传输(4 MB/s!)同步......而在使用 Dropbox 同步的 ADSL 上它会停留在 100 KB/s ! (我的 ADSL 上传速度限制为 100 KB/s)