I work with multiple computers for various reasons. I want to keep those computers in sync configuration wise. I already have a VCS based setup that allows me to manually update configurations on multiple hosts. But i'm looking for a way to do this automatically.
What I'm looking for is:
- A way to sync configuration (vim, ssh, evolution)
- keeping certain directories in sync (like ~/Documents)
This is all user configuration and not system configuration. At times the workstation can be offline or behind a slow link, so being able to detect that and act accordingly is a plus.
If you don't have any confidential data in those files, you could use Dropbox to keep them automatically in sync across multiple machines. The Dropbox daemon will synchronize one folder, usually
~/Dropbox
, but you can include other files or directories in the synchronization by symlinking them into that folder. (I think Dropbox may also offer some other method to keep multiple folders in sync, but I can't find the directions right now)While I'd recommend Dropbox (a better cross-platform solution) if all your workstations are Ubuntu-based you could use Ubuntu One. If you're looking for something more powerful have a look at rsync.
Landscape is paid service by canonical for managing and monitoring multiple ubuntu systems. What's better is that by paying for it you also support Ubuntu!
Another free service you could use is Spideroak, which is a bit less simple than Dropbox and UbuntuOne but on the other hand more flexible: You can select any folder you want for backup and decide which folders to sync. This allows nicer configurations because you can use the service for backing up data that you don't want to synchronize on all machines.
Another advantage (although it is hard to check whether this is really true): All data is encrypted, they have a "zero knowledge policy" which means they don't even know the names of your files.
You could create a shared Git repository on a private server with SSH access. For example, I am using a nearlyfreespeech.net account for this, and cost is very low.
If you want to get fancy you can create a cron script to automatically push/pull changes every so often, always keeping your files up-to-date. As long as you don't work on two machines simultaneously, then you should never encounter any merge conflicts.