我有:
我通过 SSH 在 IP 203.0.113.0 端口 1234 上连接的 Linux 服务器
一台家用电脑(在路由器后面),公共 IP 198.51.100.17,是 Debian 或 Windows+Cygwin
/home/inprogress/
让文件夹同步(双向)最简单的方法是什么,有点像rsync
,但使用文件系统观察程序,以便每次修改文件时,它都会立即在另一端复制?(即无需手动调用同步程序)
我正在寻找命令行/无 GUI 解决方案,因为服务器是无头的。
是否有 Linux/Debian 内置解决方案?
在@Kusalananda 的评论之后,我终于花了几个小时来测试这个用例的Syncthing,它工作得很好。它会自动检测双方的变化,并且复制非常快。
示例:假设您正在本地使用
server.py
您最喜欢的记事本软件进行操作,您按下 CTRL+S(保存)。几秒钟后,它会自动复制到远程服务器上(没有任何弹出对话框)。我注意到的一件好事是,您不必考虑使用 Syncthing 的家用计算机和服务器的 IP:每个“设备”(计算机、服务器、电话等)都有一个唯一的 DeviceID,如果您共享ID 与另一台设备,它会自动找出他们应该如何相互连接。
去做:
家用电脑端(Windows 或 Linux):
使用普通的 Syncthing 浏览器内配置工具
VPS端:
首先用端口转发连接VPS:
后一个选项会将 VPS 的 Syncthing Web 配置工具在端口 8384 上侦听重定向到家用计算机的端口 8385。
然后在 VPS 上运行:
然后在家用电脑的浏览器上,打开http://localhost: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 地址),它会自动注意到它不需要通过 Internet 传输,但它可以在当地处理。这很棒,并且允许通过 WiFi 连接到同一个家庭路由器的两者进行非常快速的传输(4 MB/s!)同步
phone <--> computer
......而使用 Dropbox 同步在 ADSL 上它会卡在 100 KB/s !(我的 ADSL 上传速度限制为 100 KB/s)听起来Unison应该完成这项工作。
它确实有一个可选的 GUI,可以使解决冲突更加容易,但也可以使用基于文本的用户界面完成所有操作。您还可以预定义如何解决完全无人值守操作的冲突。
有一个文件观察器 (fsmonitor) 组件可以在需要时触发同步。详情请在手册中搜索“重复观看” 。
看起来 Debian 有正确的版本(2.48+)打包开箱。