在無法直接通訊的電腦之間保持 Unison 設定檔同步的最簡單方法是什麼

在無法直接通訊的電腦之間保持 Unison 設定檔同步的最簡單方法是什麼

我正在使用 Unison 在家庭電腦和工作電腦之間同步一些檔案。但是,兩台電腦無法透過 ssh 直接相互連接,因此我透過 USB 隨身碟(使用 ext4 格式化以保留權限)進行同步。

我遇到的問題是 Unison 在本地存儲同步配置文件配置(在 .unison 目錄中)而不是在資料夾本身中。這意味著某些資訊(例如忽略的文件)需要在我保留的兩個設定檔中重複。

有沒有辦法讓兩台電腦之間的同步設定檔自動保持同步?

答案1

我將設定檔保存在要同步的目錄中。在裡面~/.unison,我放置了一個指向真實配置檔案的符號連結。這對我來說效果很好。它還允許我快速“引導”一台新機器:只需將配置文件從 USB 驅動器複製到新計算機,然後重新開始。

有一個「陷阱」。如果您新增一個忽略行到與 USB 驅動器上恰好存在的文件相匹配的配置文件(在一台計算機上),該文件將在下一次 Unison 同步時從 USB 驅動器傳輸到另一台計算機,儘管忽略線。原因是設定檔計劃傳輸,但在(在另一台電腦上)直到下一個同步。除此之外,我還沒有遇到任何問題。

答案2

我最終得到的替代方案是進行兩步同步。我有一個 Unison 配置文件,用於同步我的 Unison 配置文件

#.unison/sneakernet-init.prof

label = Unison profiles

root = /home/hugo/.unison
root = /media/hugo/MYDRIVE/Sync/Unison

path = sneakernet-common        # ignore rules, diff command, etc
path = sneakernet-dotfiles.prf  # profile for my dotfiles
path = sneakernet-hugobox.prf   # profile for my other stuff

然後,我使用腳本依次運行每個配置文件

#syncronize-things.sh
unison-gtk sneakernet-init
unison-gtk sneakernet-dotfiles
unison-gtk sneakernet-hugobox
sync # Flush file system caches

這個解決方案有點麻煩,因為我需要運行一致 3 次而不是一次,但它的優點是沒有一致配置文件負責同步自身(這會導致奇怪的行為,您可能需要使用一致運行兩次相同的配置文件才能正常工作)

相關內容