Networking

在兩台電腦之間同步一個文件夾,使用文件系統觀察程序,以便每次修改文件時都會立即複製它

  • December 15, 2018

我有:

  • 我通過 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 配置!


我試過的其他解決方案:


我剛剛注意到的 Syncthing 的其他優點:

  • 您可以減少fsWatcherDelayS從秒config.xml到秒102以便在執行 CTRL+S 後,2 秒後(+ 上傳時間,即對於一個小文本文件來說不到 1 秒)它在另一台電腦上
  • 如果同步同一區域網路中的兩台電腦(只需將 DeviceID 相互提供,無需關心本地 IP 地址),它會自動注意到它不需要通過 Internet 傳輸,但它可以在當地處理。這很棒,並且允許通過 WiFi 連接到同一個家庭路由器的兩者進行非常快速的傳輸(4 MB/s!)同步phone <--> computer……而使用 Dropbox 同步在 ADSL 上它會卡在 100 KB/s !(我的 ADSL 上傳速度限制為 100 KB/s)

引用自:https://unix.stackexchange.com/questions/484434