Skip to main content

FreeFileSync: data synchronisation over the local area network

The project is to build a Linux Mint machine to have the identical functionality and ergonomics as the existing Windows 10 machine.

This stage relates to data synchronisation over the local area network (now that, at last, a useful network connection has been established!)

Environment & required functionality

The network should be a local network - to share files and folders - between the following machines:
  • The Linux Mint Xfce 18.3 laptop "Gandalf";
  • The Windows 10 laptop "Legolas".
The network is a local area network from a domestic router, the usual 192.168.x.x thing.

Alternatives

Peer-to-peer networking (file sharing, simple two-way server-and-client relationship) is the most efficient way for bulk data transfers, so if the network doesn’t work, then the test has failed.

One alternative is already successfully tested and in use: Google Drive (via Backup & Sync for Windows and grive2 for Linux Mint).  However, this is limited to the capacity of Google Drive.  The capacity is 15Gb for free, then payable thereafter.  This is a relatively expensive way of backing up >15Gb data and is no protection against undetected, unintended deletion of data.  The sync agent is also quite unreliable, occasionally creating duplicate files in Windows (suffixed by "(1)" etc).

The only other alternative is to use a physical drive to copy data from one machine, then plug the physical drive into the destination machine and copy data for a second time.

The network needs to be secure, otherwise it would broadcast the data to any eavesdropper on the network.

Software selection

The following table summarises the scope of this test.

ApplicationOn Windows?On Linux?Requires
rsync and cwRsyncYYSSH (which works) and/or Samba (which doesn't work)
WinScpYNSSH (which works)
FileZillaYYSSH (which works)
SyncBack FreeYNNFS (which doesn't work)
FreeFileSyncYYSSH (which works)

The winner was FreeFileSync.  Judgements follow.

SyncBack

SyncBack is software I've used before, so that was the first to test.

It failed on the first hurdle, because it cannot handle transfer protocol SFTP in its free version.  It can handle a network file share (NFS) or insecure file transfer protocol (FTP), but not secure file transfer protocol (SFTP) over SSH.  So SyncBack fell out of the running.

Source: vendor.

rsync & cwRsync

rsync is a CLI tool native to Linux and cwRsync is a GUI tool for Windows that uses SFTP over SSH, so theoretically could work on either machine.  As the successful test has Legolas/Windows accessing Gandalf/Linux Mint over SSH, then cwRsync would have been a good candidate for testing.  But rsync is linked to Samba, and Samba doesn't work.  Samba's failure is ultimately down to over-engineering, over-complexity, over-choice, over-customisation and unfocussed to the end user's objective requirements (i.e. obsessing with an obscure technical challenge in the middle of a process instead of actually fulfilling the end-user's objective demands).  All of these issues flourish from woolly-headedness and sloppy design objectives, so any app associated with Samba - and therefore the same/similar development team - is likely to suffer the same problem.

cwRsync was supposedly free, but needed a fee of USD 6 to download the product.  That didn't help sell it: the competition is free from end-to-end!

So rsync and cwRsync fell out of the running.

Sources: itefix.net, serverfault.com,

For rsync, the comment on serverfault with 48 votes is absolutely spot on.  The author notes, that "I would say that rsync is just too freaking complicated," and "Windows users generally expect, well, windows, and menus, and to have a single app be an all-in-one solution, not just an independent piece of a tool chain."

WinScp

WinScp is a Windows-only app.  It landed in second place, and remains a potential replacement for the winner of this test.  It seems to meet all of the functional requirements, but fell out of the running because it had no Linux version to hand and seems to have no prospect of having a Linux version to hand.

This lack of Linux version should not undermine the user's required functionality on Windows.  This is because, with a connection of SFTP-over-SSH, it doesn't matter which machine pushes the data.  That said, it is easier to connect from a Windows machine to a Linux machine.  This means that one would need to spend time one doesn't have to test the program; there is a fair probability that WinScp would need to be running as a service on both machines to ensure that both machines are listening to eachother and have configured eachother's firewalls to ensure that listening is possible.

WinScp probably does not need to be installed on both machines, if it uses SFTP and therefore is compatible with the OpenSSH service already installed on Gandalf/Linux.  But it's not worth the time finding out.  Better to carry on looking for a program that sells itself better.

Filezilla

Filezilla is an app that runs on all three major platforms (Windows, Linux, Apple/iOS).  It met all of the functional requirements.  Being available for Linux meant that it would have been available to the ex-Windows user having migrated to Linux Mint.

But it fell out of the running because of its poor security.  Incredibly, it does not support an SSH password management tool (such as Pageant).  Worse, it stores users' passwords in plain-text!

Sources: Slant.coWebXen, vendor.

FreeFileSync

FreeFileSync won the software selection in this test, found by Googling "alternatives to SyncBack".

It met the core functional requirements, and looks likely to meet future requirements too.  It is available in both platforms Windows and Linux Mint, so works for the ex-Windows user migrating to Linux Mint (during the transitional period of the migration).

Screenshots are always a good way of selling a GUI program, because the user can imply a lot of functionality and clear-headedness of the developers by looking at the screens that emerged from the developers' design process.  FreeFileSync's screenshots suggested a great deal of real-life experience in handling data and a mentality of continuous service improvement in the design of the app.

FreeFileSync's online manual was also a key attraction.  If the developer can spell out the "how to" story to the end-user quickly, it allows for a much quicker buy-in.  And it also points again to clear-headedness of the developers' design process.  The developer himself said this in his vision:
"I like to think that good software design is finding the base vectors of the problem domain: If you have too few "vectors" (= program capability), your software doesn't satisfy enough of your users' needs. If you have too many, you are bloating the software with redundant options."
Finally, FreeFileSync is open source, publishes its source code and applies the GNU Licence v3 of 29 June 2007.  This is superb, because it means that the code is open to constant peer-review.

Installation experience

FreeFileSync uses SFTP over SSH.  Therefore:
Dead easy in both cases.

User experience

Because FreeFileSync is a Windows app and designed by somebody who know what they are doing, the use of FreeFileSync is so simple that the user could figure it out from the screen without needing to refer to the user manual.  As with all GUI, the end-user just needs to fill in the on-screen forms and the application does what it needs to do.

The program successfully transferred a large library of photographs from Legolas to Gandalf, without incident.

The program also successfully reconciled a large library of music files from Legolas to Gandalf, previously synced by PSFTP and found no differences.  This reconciliation prove that both FreeFileSync and PSFTP are consistent and, from this, arguably reliable.

Conclusion

FreeFileSync enables data synchronisation over secure file transfer protocol (SFTP) over secure shell SSH.

With data able to flow freely between the two platforms Windows and Linux Mint, the project can now proceed.


Completed June 2018.

Comments

Popular posts from this blog

Scanning & OCRring to PDF: Simple Scan, gimagereader and gscan2pdf v NAPS2 for Windows

The project is to build a Linux Mint machine to have the identical functionality and ergonomics as the existing Windows 10 machine. This stage relates to scanning paper documents to PDF and digitising the scanned text via optical character recognition. Environment & required functionality The scan-and-OCR function needs to run on the following machines: The Linux Mint Xfce 18.3 laptop " Gandalf "; A Linux Mint Xfce 18.3 virtual machine " Gimli "; The Windows 10 laptop " Legolas ". In any modern office - whether at home or at work - some transactional documents and documents from public authorities still arrive by snail-mail. This requires the ability to scan all documents, optionally with the digitisation of scanned text (typically via optical character recognition). The hardware is an old HP OfficeJet Pro 276dw, connected to the LAN instead of directly to a workstation. Alternatives There are two strategies: To use the software pr

An attempt at full-disk encryption: Vera Crypt

The project is to build a Linux Mint machine to have the identical functionality and ergonomics as the existing Windows 10 machine. This stage relates to testing full-disk encryption using VeraCrypt . Environment & required functionality Full-disk encryption needs to run on the following machines: The Linux Mint Xfce 18.3 laptop " Gandalf "; The Windows 10 laptop " Legolas ". The objective requirement is to protect user data from the physical theft of the physical machine, to provide an additional line of defence against data loss. This is probably more important for Windows than for Linux Mint.   Even so, in both cases, the operating system is likely to log activity which can reveal personal data and user (meta)data. Full-disk encryption does not mitigate against Microsoft’s sinister telemetry functionality, for which the main solutions seem to be: Either to use tools whose developers are constantly on the prowl, hunting for t

The Big Bang: Microsoft Windows goes for good, positive adaptations required

On 27Mar2021, Linux Mint ate Microsoft Windows 10 on Legolas. Three months on, I conclude beyond any doubt that wiping out Windows was the best decision I ever made. The second best decision I ever made was to test Linux Mint in Virtual Box five years ago. The third best decision I ever made was to take ownership of the learning curve that migrating in Windows really entails. A quick reminder: what’s Microsoft Windows like nowadays? I still need to use Windows at work. I cannot easily describe how painful it now is to use Windows. So I’ll try to describe it difficultly. My work machine is a powerful beast, but it exhibits constant latency. For a keyboard-orientated power user, this means that some keystrokes go walkabouts when other services on the Windows machine go to nuclear war with each other, scrambling to feed their narcissistic self-importance for besieged system resources wholly at the user’s expense. Something on Windows tends to clear the keyboard buffer randomly, resulting