Imagine I have three Ubuntu computers home, laptop, beach-house. They all have the same version of Ubuntu, 10.04 installed, and are kept up to date from the repositories.

I use f-spot, thunderbird, and google-chrome on all of the computers. Is there a way to keep the data and configuration in sync across them, without requiring constant connectivity for normal (non-synchronous) usage?

For example, they should be usable without network connectivity, so something like NFS won't work.

An ideal solution would not require manual action to start the syncing process.


Apps like f-spot, thunderbird, and google-chrome all use some form of binary database to store their data. Trying to sync things like this where there's the possibility of the same app accessing/modifying the file at the same time could get really messy.

Instead you want to look for application-specific solutions.

  • With thunderbird, I would say use IMAP. If you don't have it, GMail supports it. You could have thunderbird upload all your email there, or better yet, have GMail pull in email from your other accounts. You also gain pretty decent webmail and a great spam filter for free.

  • Firefox has (amongst other things) Firefox Sync.

  • Chrome has a sync feature built in, documented here.

  • F-Spot is tougher. Perhaps consider something to sync the files but not the database. This would mean you'd need to scan for new files all the time but only if you needed to use F-Spot on every computer.

    You could limit yourself to using F-Spot on one computer and just accessing the files on the others. Of the three, the F-Spot database is the most fragile so be careful if you do share the database file.


To synchronize data, such as documents, use UbuntuOne or DropBox. I can really recommend the latter. This assumes that you don't mind storing your data in a company's data center or cloud. I'm not sure about sharing your music collection through the internet. My network connection is not fast enough to allow this, so I'd go with manual copying or using rsync regularly.

For configuration, there are two different cases: applications that use regular text files as configurations, and those that use a gconf, a database or something nonstandard. For the former, you can store the dotfiles (for instance ~/.vim/, ~/.zshrc) in a subfolder of your Dropbox (or UbuntuOne) folder, and then symlink the files back to your $HOME directory. This works well.

As to the applications you mention, it seems that none of them use simple text files as configuration. That means, in essence, that you can't effectively synchronize them. The reason is that, if there is a conflict, you won't be able to resolve it. Furthermore, some parts of the configuration directory, such as cache files, are bound to be system-specific or otherwise inappropriate for synchronization. In these cases, I say don't bother with synchronization, and just copy over the config directory once. There's an exception, however: applications that natively support sharing a configuration across multiple computers. Firefox can do this, and recent versions of Google Chrome can store at least some parts of the configuration in your Google profile (check your preferences). I'm not sure sharing plugins/extensions is supported, but it's a feature that is being worked on.

  • For two-way synchronization (i.e. when sometimes side A will be more recent than B, and sometimes side B will be more recent than A), use unison, not rsync. – Gilles 'SO- stop being evil' Aug 10 '10 at 21:59
  • The Dropbox/UbuntuOne idea will cause trouble if more than one of the machines is online at the same time. Especially with the thunderbird folder. – LassePoulsen Aug 10 '10 at 22:28
  • @Source Lab- as I said, Dropbox oughtn't be used for application data. It's not a good idea to sync your thunderbird folder. That's what IMAP is for anyway. – loevborg Aug 11 '10 at 9:13

XMarks can sync your bookmarks, passwords, and open tabs between Firefox and Chrome (and a few others) on different computers.

DropBox for F-Spot.


For google chrome enabling sync will sync your bookmarks. In newer versions it allows you to sync autofill, bookmarks, extensions, preferences, and themes.


You could use a startup script that syncs (with rsync) the necessary files if the network is up. Hence you could use upstart to trigger the script and base it on the network ready event.

Alternatively, maybe it would be possible to use Ubuntu-one for the synchronization of the files in question.

  • Not a good idea on a desktop machine, the network ready event is sent way before the machine is online since it doesn't usually doesn't go online until you login and the NetworkManager applet initiates a connection. – LassePoulsen Aug 10 '10 at 22:22
  • This is true for wireless connections but not for ethernet connections. – txwikinger Aug 11 '10 at 0:18

Jorge Castro says "in newer versions" Chrome will let you sync history. I have the latest; I don't see it as an option. Since this is a feature dear to my heart, please let me know where you saw this information.

Or did you mean "future versions"?

  • My answer was incorrect, it currently doesn't do history. I've edited it to be correct, thanks! – Jorge Castro Sep 13 '10 at 19:39

Are you regularly on all three systems simultaneously, doing lots of data changing on all of them? If not, is there any reason an rsync on login and another on logout wouldn't do? Perhaps not the perfect solution, but adequate...

On login:

rsync -avz -e ssh remote1:~/.thunderbird/ ~/.thunderbird/
rsync -avz -e ssh remote2:~/.thunderbird/ ~/.thunderbird/

On logout:

rsync -avz -e ssh ~/.thunderbird/ remote1:~/.thunderbird/
rsync -avz -e ssh ~/.thunderbird/ remote2:~/.thunderbird/

where remote1 and remote2 are whichever two systems you're not sitting at?

Not the answer you're looking for? Browse other questions tagged or ask your own question.