Mac OS File Synchronization Software

From Exterior Memory
Revision as of 10:03, 8 March 2012 by MacFreek (Talk | contribs)

Jump to: navigation, search

File Synchronization Software allows one to sync files between two folders, disks or computers.

Synchronization is similar to backup software, but differs in that it allows copies both ways: the changes may have occurred on either side, while backup software always has a master side, which overrides the backup side. For backup software features like roll-back, historic archiving and the ability to make off-site backups (or previously: burn to DVD) are important. For synchronization software important features are the ability to detect which side has the latest version (e.g, if a file occurs on one side, it may either mean the file was created on that side, or that it was deleted on the other side, and the software needs to detect the difference), and graciously handle conflicts (e.g. when a file is changed on both sides).

List of Software

Here are the main Synchronization software programs for the Mac, roughly in order or recommendation.

Application Producer Price Notable features
ChronoSync econ technologies $40 (+$10) Flexible and powerful, for $10 adds custom remote backup protocol
Synk Decimus $40 Flexible and powerful, allows live synchronization
Synk Pro Decimus $60 Flexible and powerful, allows live synchronization
FoldersSynchronizer softoBe $40 Flexible and powerful
Synchronize X Plus Qdea $30 Basic synchronization, does not retain permissions
Synchronize X Pro Qdea $100 Flexible and powerful
GoodSync for Mac GoodSync $40 Feels very Windows-based
DropBox DropBox varies Stores your data in the cloud, you pay a yearly fee for the amount of data you store.

For more option, I recommend Joe Kissell's Review of nearly 100 Mac backup apps. While not all information is complete, it does give a good set of criteria to check for.

Backup Software

If you're mostly interested in simple backup software, SuperDuper ($28) or Carbon Copy Cloner (donationware) are good choices.

Comparison of Synchronize, Synk and ChronoSync

I did some extensive testing of Synchronize, Synk and ChronoSync.

Common Features

All software above has the ability to auto-mount Apple File Shares (AFP). A disadvantage of synchronisation over a Apple File Share is that the AFP protocol does not support extended permissions (ACL), and that it may be slow if you have lots of files to check. ChronoSync and Synk solve this problem by optionally allowing synchronisation using a control daemon on the remote host, and using their own protocol.

ChronoSync

Pro
Detects metadata changes, displays metadata, Optional own protocol for $10 more
Con
No live sync

Synk

Pro
Live sync, Optional own protocol
Con
CPU intensive, can not exclude folders, does not detect metadata changes (though it is copied if the file is changed)

Synk Pro

Pro
Live sync, Optional own protocol, N-way sync
Con
CPU intensive, does not detect metadata changes (though it is copied if the file is changed), slightly less intuitive user interface

Synchronize Plus

Pro
Very easy to use preview window, displays size to copy, take per-folder or per-file based actions
Con
Does not retain basic metadata (file permissions), No live sync

Synchronize Pro

Pro
Very easy to use preview window, displays size to copy, take per-folder or per-file based actions
Con
Expensive, No live sync, does not detect metadata changes (though it is copied if the file is changed)

Conclussion

My recommendation is to buy Synk Pro if you like live synchronization, or ChronoSync if metadata means a lot to you. Synchronize Pro is a good (but more expansive) choice if you often like to preview the copy and delete actions. I would not recommend Synchronize Plus because it does not copy any metadata. In my case, all copies files ended up as world-writable. Not a great choice for your precious backups.

Synchronization software test

=================

This test specifically targets synchronization software, not backup software, were features like roll-back, historic archiving and the ability to burn things on CD/DVD/Tape are much more important. Some application listed here may be unfit for synchronization purposes, but may be fit for backup purposes.

Interoperability with other synchronization application not tested. Some synchronization applications will first create a database with properties of the files, so they can keep track what has been changed without the need to compare it with an other share. This technique makes it easier to create more intelligent synchronization software, but typically does not work with other synchronization software and requires you to create such a database the first time you run it.


Synchronization application basic tests


(MUST pass these)

1) Handles basic sync: adding files to two clean shares

 11. no, all files are synced again, even duplicates
 12. no, only one file is copied
 31. yes, both new files are copied

2) Handles basic deletion: deleting file at each share

 11. no, two files are added
 12. no, one file is deleted, one is added
 13. no, nothing happens
 31. yes, the two files are deleted

3) Handles basic multiple computers

 - make 3 shares with file1, file2, using synchronization app.
 - Delete file2 & add file 3 at share 1.
 - Synchronize share2 & share3. (to possibly confuse last sync times)
 - Synchronize share1 & share2.
 - Synchronize share2 & share3.
 11. no, three shares are not equal now
 12. no, three shares are equal, but not correct
 41. yes, three shares all have file1 & file3 only.

4) Handles conflicts: file modified on both ends

 21. no, just overwrites the oldest one
 22. no, just overwrites the smallest one
 23. no, just overwrites the second one
 24. yes, logs alert and does not copy (cron mode)
 31. yes, always ask (user intervention required)
 32. yes, always copies file to special location
 41. yes, can be specified
 42. yes, can be specified differently for cron & UI

Synchronization application intelligence tests


(MAY pass these)

11) Smart time-state support: checks modification date, files size and md5 checksum

 21. no, only checks file modification date only (not size)
 22. no, checks file size only
 31. yes, checks modification date and size
 32. yes, allow user to choose between size and/or modification date
 41. yes, checks checksum only
 42. yes, checks modification date and checksum
 43. yes, allow user to choose between modification date, size and/or checksum

13) Handles file renaming: file remains in folder, but is renamed

 11. no, file is copied both ways
 21. no, file is copied, old filename is deleted
 41. yes, file is renamed (checks inode)

14) Handles folder renaming: only name of a folder is changed

 11. no, folder with contents is copied both ways
 21. no, folder with contents is copied, old folder is deleted
 41. yes, folder is renamed (checks inode)

Synchronization application feature tests


(SHOULD pass these)

21) Can synchronize between folder and disk

 11. no, can only synchronize between two disks
 22. no, can only synchronize between two folders
 31. yes

22) Can make schedule

 21. no
 31. only manually by applescript
 32. by program, simple
 33. by program, only if application is not closed
 41. by cron
 42. by program, separate for weekdays

23) Can run in background

 21. no, requires user interaction
 22. no, pops up, but can easily be clicked away
 31. yes, visible, non intrusive
 41. yes, not visible

24) Auto Mounts/unmounts disks

 21. no
 31. yes, only mount, never unmounts
 32. yes, mount and always unmounts
 41. yes, mount and unmount only if disk was not mounted before

25) Has preview option

 21. no, immediately synchronizes
 22. yes, has preview, but cannot change anything
 31. yes, has preview and can skip items
 41. yes, has preview and can change synchronization direction

26) Preview is user friendly

 21. no, has no preview
 22. no, cannot change anything
 23. no, can only change per file only
 31. yes, can change per folder
 41. yes, can change by any selection

27) Save deleted files

 21. no, files are always deleted without recoverability
 21. no, files are moved to trash; doesn't work for network disks
 31. yes, files are always moved to special folder
 41. yes, files are optionally moved to special folder
 42. yes, files are moved to special folder, and there is an easy recovery tool

28) Logging

 21. no, nothing is logged
 31. yes, only file copies OR deletions are logged (not everything)
 32. yes, file checks are optionally logged too (verbose)
 33. yes, only file name is logged, not path
 41. yes, file copies and deletions are logged
 42. yes, user customizable logging

Metadata preservation


(SHOULD pass these)

31) Retain Permissions and Ownership

 11. no, can only run as user, and does not preserve permissions
 21. no, can run as root, but new files are made root
 22. no, can only run as user, but preserves permissions
 23. no, must run as root in GUI to handle this
 24. yes, always asks for manual input of password
 31. yes, must run as root in cron script to handle this
 41. yes, asks for manual input of password, only if needed
 42. yes, remembers password

32) Retain Access Control Permissions (e.g. chmod +a "_www allow delete" acl_file; ls -le)

 11. no, ACL is not copied
 31. yes, ACL is copied if the file is copied
 41. yes, ACL changes are detected and copied, even if the file itself is not changed

33) Retain HFS+ Attributes (e.g. SetFile -a V hidden_folder; GetFileInfo hidden_folder)

 11. no, attributes are not copied
 31. yes, attributes are copied if the file is copied
 41. yes, attribute changes are detected and copied, even if the file itself is not changed

34) Retain Extended Attributes (e.g. xattr -w org.example.test some_value attribute_file; xattr attribute_file)

 11. no, Extended Attributes are not copied
 31. yes, Extended Attributes are copied if the file is copied
 41. yes, Extended Attributes changes are detected and copied, even if the file itself is not changed

Filtering


41) Can exclude files or folders

 21. no
 22. yes, by full folder names only
 23. yes, by full file names only
 31. yes, by folder OR file only with pattern match
 32. yes, by full folder and file names
 41. yes, by files per folder
 42. yes, by folder/file with pattern match
 43. yes, by folder/file and regexp per folder

42) Can copy hidden files

 22. no
 31. yes, always
 41. yes, configurable

Synchronization application speed tests


(SHOULD pass these)

51) Transfer speed test (little files, lots to copy)

 - Two empty shares. Add 100 files of 1 MB to one share. measure time.
 - Local connection (6 MByte/s, 0.2 ms)
 11. > 1 hour
 12. 30-60 minutes
 13. 20-30 minutes
 21. 10-20 minutes
 22. 5-10 minutes
 23. 3-5 minutes
 31. 2-3 minutes
 32. 1-2 minutes
 33. 35-60 seconds
 41. 20-35 seconds
 42. 15-20 seconds

52) Transfer speed test (little files, lots to copy)

 - Two empty shares. Add 100 files of 100 kB to one share. measure time.
 - Remote connection (90 kByte/s, 16 ms)
 11. > 1 hour
 12. 30-60 minutes
 21. 20-30 minutes
 22. 10-20 minutes
 32. 5-10 minutes
 33. 3-5 minutes
 41. 2-3 minutes
 42. 1.5-2 minutes

53) Query speed test (lots of files, little to copy)

 - Two shares with 5000 files of 20 kByte. Only 1 is changed. measure time.
 - Local connection (6 MByte/s, 0.2 ms)
 11. > 1 hour
 12. 30-60 minutes
 13. 20-30 minutes
 21. 10-20 minutes
 22. 5-10 minutes
 23. 3-5 minutes
 31. 2-3 minutes
 32. 1-2 minutes
 33. 35-60 seconds
 41. 20-35 seconds
 42. 10-20 seconds
 43. 5-10 seconds
 44. 0-5 seconds

54) Query speed test (lots of files, little to copy)

 - Two shares with 5000 files of 2 kByte. Only 1 is changed. measure time.
 - Remote connection (90 kByte/s, 16 ms)
 11. > 1 hour
 12. 30-60 minutes
 13. 20-30 minutes
 21. 10-20 minutes
 22. 5-10 minutes
 31. 3-5 minutes
 32. 2-3 minutes
 41. 1-2 minutes
 42. 35-60 seconds
 43. 20-35 seconds