我正在使用 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 次而不是一次,但它的優點是沒有一致配置文件負責同步自身(這會導致奇怪的行為,您可能需要使用一致運行兩次相同的配置文件才能正常工作)