Networking
在兩台電腦之間同步一個文件夾,使用文件系統觀察程序,以便每次修改文件時都會立即複製它
我有:
- 我通過 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:
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://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)