File Synchronization for Free
This article was published by ComputorEdge, issue #2717, , as the cover article, in both their PDF edition (on pages 7-10) and their website.
People are more mobile nowadays than ever before, and the same is true of their data — especially now that more people are using laptops, palmtops, PDAs, flash drives, and smartphones, in place of desktops, or sometimes in conjunction with desktops. These portable data devices are carrying an increasing amount of business and personal information, to more destinations outside of the home or office — back and forth on a daily basis, for some commuters. At the same time, a growing amount of that data is also being stored on the Web — in email accounts, FTP accounts, and blogs, as well as with Web-based file backup services and other data repositories in the digital "cloud".
As a result of this widespread distribution of data, there are more cases of any given computer file existing in two or more locations. There are also more chances for losing new information. For instance, if you connect your PDA to your desktop computer, and you copy your daily schedule from your PC onto your PDA, before heading out the door, now you have two copies of the same file. If you update your schedule file on your PDA as you are running about town, then the two copies of the file are now out of sync. Upon your return home, if you forget to synchronize those two copies of your schedule file, then if you repeat the process the next day — updating your schedule on your PC, and copying it to your PDA — you will have lost your previous day's changes to the version on your PDA.
The above example illustrates two-way synchronization, in which you might be making changes to either version, and after doing so you should bring the other version up to date, so the two files are synchronized. An example of one-way synchronization would be the process of creating backups. For instance, you can have all of your personal data on your primary hard drive in your PC, and you can wisely install a second hard drive that is only used for daily backups. This form of file synchronization is commonly referred to as "mirroring", because after a backup, the backup drive reflects the state of the files on your primary drive.
One-way synchronization is quite straightforward: You always copy from the "source" location to the "target" location — never the other direction. In the case of our example of a backup hard drive, the files on your primary drive, the source, are where you make any changes, and those changes are saved the next time you back them up to your second drive, the target. You would never edit the copies of your files on the backup drive, and so there would be no danger of losing those changes the next time that you perform a backup and copy those same files over from your primary drive.
Two-way synchronization is more complicated, because there is no guarantee that one location is always the most up-to-date. In other words, two different locations could alternate roles as the source and target. Even worse, if both versions are changed independently, then both are sources. When it comes time for you to synchronize the files, you could do it manually, but that is very tedious, time-consuming, and dangerous. It is simply too easy to forget that you modified a particular file tucked away in a folder. Even more problematic is if one of the newer files has somehow become corrupted, or you accidentally deleted a large portion of its contents, and that bad version is copied over an older but better one.
The possibility of losing your latest changes becomes almost a certainty if the system clocks for each location are not themselves synchronized. That is because, for the two versions of any particular file, you are basing your comparison upon those files' timestamps, which show when they were last modified. Those timestamps rely upon the system clock of each particular device, and if the two system clocks are not in agreement as to the current date and time, then the separate timestamps for the two versions of the file become misleading. It is the digital equivalent of comparing apples with oranges. For instance, imagine that your PC and PDA show the same time, and you copy a file from the former to the latter. Both copies of the file show the identical "last modification" timestamp. Minutes later, your PC detects that Daylight Saving Time has ended, and sets your PC system clock back one hour, but your PDA does not do the same. You make some changes to the file on your PC. It is the most up-to-date version of the file, and yet it has a timestamp older than the PDA version.
For the reasons mentioned above, it is critical to verify that the system clocks on your various file locations, are in agreement. Secondly, it is highly recommended that you use a file synchronization program, rather than trying to do it manually and running the risk of losing important updates. In this article, I will examine some of the better file synchronization applications that can be used free of charge.
Even as the world of software development continues to move in the direction of open source (meaning that the computer source code can be viewed by anyone), many software development organizations and individuals are sticking with the older model of making their products free, but not releasing the source code along with the executable programs. (There is an ongoing and interesting debate in the software world as to the advantages and disadvantages of each model, but I will not explore that here.)
Microsoft is certainly not the first vendor name that comes to mind when people think of free applications, but over the years the company has released several file synchronization utilities, and they can be freely downloaded and used by anyone running Windows on their PC. Two separate but related programs, Windows Mobile Device Center and ActiveSync, were designed for people who need to synchronize documents, email messages, calendar entries, and contact lists, between their desktop PCs and any type of mobile device that supports these protocols. Windows Mobile Device Center runs on Windows Vista, while ActiveSync is intended for anyone running Windows XP or Vista.
Windows Live Sync is Microsoft's rewrite and repackaging of ByteTaxi's FolderShare. Unlike the two Microsoft programs mentioned above, Live Sync runs on Mac OS X, as well as Windows XP and Vista. The program is now able to synchronize up to 20 directories, each containing up to 20,000 files. It supports Unicode and Windows Live ID. In addition, it is integrated with the Windows Recycle Bin and Windows Live Photo Gallery.
The last of the Microsoft products I will consider, SyncToy, is a Windows PowerToy that is free to download and use, and can be utilized to automate the synchronization of multiple files and folders. It is capable of merging the contents of two different versions of a file, as well as automatically renaming and deleting files in one folder as already done in its pair folder. The folders can be located on local hard drives, network shares, flash drives, and even digital cameras. The graphical user interface is easy to use, and allows you to exclude particular files and folders based upon their names and the file types.
BestSync 2009 is a free alternative to the Microsoft options, and offers a wide range of features, including the following: It handles two-way synchronization of content on local drives, network drives, removable media, FTP servers (handling multiple time zones), and Microsoft Outlook. It runs on Windows Vista, XP, 2000, Server 2008, and Server 2003. Its user interface is available in at least six languages, including English. Synchronized files can be compressed or encrypted, which is especially valuable for sensitive data written to removable media. The synchronization process can be done automatically, as the program detects changes in different versions of files, and it can also be scheduled, as a Windows service.
SyncBack is offered in three different versions. The freeware version supports one-way and two-way synchronization on local drives, optical media, flash drives, FTP servers, Zip archives, and network drives. It does not require registration or any personal information to be downloaded and used, and it contains no advertisements, nag screens, or spyware.
Some of the open-source synchronization applications run only on Windows, while others are cross-platform. I will look at examples from each category, starting with the first. FullSync can backup or synchronize in local directories and FTP servers, and allows you to specify exactly what files to include or exclude, depending upon rules you define, even on a per-directory basis. WebSynchronizer supports the automatic and manual synchronization of files to network drives and FTP servers, and the user interface is available in English and Russian. WinSCP (Windows Secure CoPy) focuses on synchronizing files between local and remote servers, using regular or secure FTP.
DirSync Pro (Directory Synchronize Pro) can synchronize files on desktops, laptops, PDAs, and flash drives. It can be used for creating incremental backups (meaning that only the changes are copied, saving time and disk space). It is written in the programming language Java, and thus can run on Linux, Windows, and Mac OS X. KDiff3, too, is in Java, and allows you to display, merge, and print differences among multiple versions of the same file, line by line. JFileSync is yet another Java-based synchronization utility. It reports conflicts between files — meaning that each contains changes not in the other — and it has its own built-in file server, which allows synchronization through firewalls.
It is clearly possible to keep your personal and business files synchronized and up-to-date on multiple devices, without having to spend any money. Yet even if you have only one computer or other data-storage device, you still should be doing one-way synchronization, on a frequent basis. In other words, do those backups!