保持配置文件在多台電腦上同步
我有幾台不同的 linux 機器,每台機器上都有很多配置文件*(和文件夾)*。
例如:
~/.ssh/config ~/.config/openbox/rc.xml ~/.config/openbox/autostart.sh ~/.scripts/ ( folder ) ~/.bashrc ...etc
是否有一種簡單而優雅的方法可以讓這些文件在我的機器之間保持同步*(一台無法訪問網際網路)*?
此外,某些文件將需要更高級的同步過程,因為它們必須略有不同……例如:
我的桌面鍵盤有一系列熱鍵,而我的筆記型電腦幾乎沒有。我曾經
XF86Mail
在我的桌面上打開雷鳥,但Meta
在M
我的筆記型電腦上打開。我的家庭桌面和工作桌面都更面向“多使用者”,我的筆記型電腦只適合我。所以在我的筆記型電腦上,我傾向於將 openbox 的“rc.xml”文件保留在
/etc/xdg/openbox/rc.xml
桌面上~/.config/openbox/rc.xml
將文件置於版本控制之下。這有很多好處,包括便於保持文件同步(在一台機器上送出,在其他機器上更新)和保持更改歷史記錄(這樣您就可以輕鬆找出上個月執行的程序的問題)。
我使用 CVS 並將儲存庫與 Unison 或sneakernet 同步,但那是因為在廣泛可用的分佈式版本控制之前我一直在這樣做。從現在開始,任何人都應該使用適當的分佈式版本控制工具,例如 bazaar、darcs、git、mercurial、…
管理需要在機器之間有所不同的文件總是有點痛苦。如果配置語言允許條件,請使用它們。否則,如果存在包含機制,則使用它將配置文件拆分為機器相關部分和共享部分。將所有與機器相關的部分保存在一個單獨的目錄中(類似於
~/.local/NAME/
),該目錄始終通過符號連結(每台機器上的~/.here
-> )引用。local/NAME
我有一些文件是由共享部分中的腳本從機器特定部分中保存的參數生成的;這排除了通過 GUI 配置界面間接修改這些文件。避免在 中配置東西/etc
,機器之間更難同步。