2

I use multiple machines (a desktop PC and a laptop), and I'm looking for a way to keep the files I'm working on synchronized between all machines. The solution must meet these requirements:

  • Works on both Windows and Linux
  • Can be configured to transparently synchronize an existing folder structure
  • Allows access to the files even when no internet connection is available
  • Allows access to the files during the synchronization process
  • Synchronizes files without manual invocation
  • Must store files on a user-controlled server (ideally via SSH) and not someone else's "Cloud"

What would also be nice to have, but is not strictly necessary for me:

  • File metadata synchronization (permissions + modification time in particular)
  • Free/Libre Software

Ideally, I'd boot up one machine, work on stuff, and when I boot up another box, all my changes are there as if I had made them on the box I just started.

The solution I use right now is rather limited. I wrote a simple shell script that invokes rsync to copy all files to or from a central server via SSH. This has a few drawbacks:

  • If I forget to push my changes to the server, they are unavailable on all other machines.
  • If I forget to pull changes from the server, the next pull will overwrite all changes I made locally.
  • It doesn't work on Windows without installing a huge package like Cygwin.

I also explored ownCloud, but it has some disadvantages as well.

  • Requires a full webserver stack with PHP and a SQL database
  • On Windows, it would lock files during the synchronization. Particularly annoying while writing or compiling code in short intervals
  • On Linux, it used some virtual filesystem capabilities that could only be easily accessed from a graphical file explorer
  • 1
    git-annex might fit your needs. As I've not yet used it myself, I cannot tell for sure – but should definitely be worth a look. – Izzy Nov 11 '15 at 23:18
  • 1
    cis.upenn.edu/~bcpierce/unison . Just to cross-synchronization without clouds, torrents and other third parties – ayvango Nov 12 '15 at 1:08
3

What you need is BitTorrent Sync.

It meets all your requirements:

  • Works on both Windows and Linux
  • Can be configured to transparently synchronize an existing folder structure
  • Allows access to the files even when no internet connection is available
  • Allows access to the files during the synchronization process
  • Synchronizes files without manual invocation

It also satisfies your requirement of "Must store files on a user-controlled server (ideally via SSH) and not someone else's Cloud", yet does so with more flexibility than you probably imagine. You don't even need a server; the systems simply sync with each other.

Here is a screenshot of the user interface: enter image description here

Disclosure: I contributed to the pre-release and post-release testing of this product.

  • Thanks for your answer. The website talks about "Device to device file transfer" - how does that work if one of the machines is turned off? If there is no server, how does machine B pull the changes from machine A when machine A is turned off? – secretpow Nov 12 '15 at 0:32
  • Good questions. When machine A is turned back on, they will sync. The alternative is to set up machine C, which replaces the traditional server. In this case, machines A, B, and C are automatically kept in sync, with machine C always on, thus acting like a server. The advantage is that machine C is actually a fully usable system and does not have to kept isolated like a traditional server. The BitTorrent Sync software is quite light and surprisingly easy on resources. – RockPaperLizard Nov 12 '15 at 3:12
  • No matter what solution you use, at least one system needs to be powered on for the sync to start. I use BitTorrent Sync as well, for this purpose, with 4 systems: a linux server in my home, my work laptop, my tablet, and my home laptop. – Canadian Luke REINSTATE MONICA Nov 13 '15 at 14:31

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

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