Maintaining config documents synced throughout numerous computer's
I have a couple of various linux equipments and also a great deal of config documents (and also folders) on each.
As an example:
~/.ssh/config ~/.config/openbox/rc.xml ~/.config/openbox/autostart.sh ~/.scripts/ ( folder ) ~/.bashrc ...etc
Exists a straightforward and also classy method to maintain these documents synced in between my equipments ( one has no net accessibility ) ?
Additionally, some documents will certainly require an advanced syncing procedure, as they will certainly need to vary a little ... as an example:
My desktop computer key-board has a series of hotkeys, where my laptop computer has virtually none. I make use of
XF86Mail to open thunderbird on my desktop computer, yet Meta+ M on my laptop computer.
My Home Desktop and also Work Desktop are both even more "numerous customer" related, where my Laptop is simply for me. So on my laptop computer, I often tend to maintain the 'rc.xml' apply for openbox at
/etc/xdg/openbox/rc.xml yet on the desktop computers at
Keep the documents under version control. This has numerous advantages, consisting of promoting maintaining documents integrated (devote on one equipment, upgrade on the others) and also maintaining a background of adjustments (so you can conveniently figure out what damaged a program that functioned last month).
I make use of CVS and also integrate the databases with Unison or sneakernet, yet that's due to the fact that I've been doing this given that a time prior to widely-available dispersed version control. Any person beginning currently need to make use of a correct dispersed version control device, such as mart, darcs, git, unstable, ...
Managing documents that require to vary in between equipments is constantly a little a discomfort. If the configuration language permits conditionals, utilize them. Or else, if there is an include device, utilize it to divide the configuration documents right into a machine-dependent component and also a common component. Maintain all the machine-dependent components in a different directory site (something like
~/.local/NAME/) which is constantly described via a symbolic link (
local/NAME on each equipment). I have a couple of documents that are created by a manuscript in the common component from parameters maintained in the machine-specific component ; this averts changing these documents indirectly via a GUI configuration user interface. Stay clear of setting up points in
/etc, it's tougher to integrate in between equipments.
I concur with the version control answer, yet an additional method I've been trying out lately is Dropbox. It's basically a variation control system that instantly synchronizes in between all your equipments, so if you modify a documents on one computer system you'll see the adjustments reviewed your various other computer systems in a pair secs, without requiring to devote on the previous and also upgrade on the last.
Their free basic plan is 2GB, so I utilize it to variation my configuration documents and also conversation logs