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
2
  • 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
    Commented Nov 11, 2015 at 23:18
  • 1
    cis.upenn.edu/~bcpierce/unison . Just to cross-synchronization without clouds, torrents and other third parties
    – ayvango
    Commented Nov 12, 2015 at 1:08

2 Answers 2

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.

3
  • 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
    Commented Nov 12, 2015 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. Commented Nov 12, 2015 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. Commented Nov 13, 2015 at 14:31
1

There is a pretty good independent solution: Syncthing. Works on both Desktop and Android. Synchronizes files completely confidentially and does not send them to third-party servers. Can synchronize folders on different devices completely automatically.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

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