![使用文件系统观察器在两台计算机之间同步文件夹,以便每次修改文件时都会立即复制](https://linux22.com/image/142729/%E4%BD%BF%E7%94%A8%E6%96%87%E4%BB%B6%E7%B3%BB%E7%BB%9F%E8%A7%82%E5%AF%9F%E5%99%A8%E5%9C%A8%E4%B8%A4%E5%8F%B0%E8%AE%A1%E7%AE%97%E6%9C%BA%E4%B9%8B%E9%97%B4%E5%90%8C%E6%AD%A5%E6%96%87%E4%BB%B6%E5%A4%B9%EF%BC%8C%E4%BB%A5%E4%BE%BF%E6%AF%8F%E6%AC%A1%E4%BF%AE%E6%94%B9%E6%96%87%E4%BB%B6%E6%97%B6%E9%83%BD%E4%BC%9A%E7%AB%8B%E5%8D%B3%E5%A4%8D%E5%88%B6.png)
我有:
我通过 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)