Synchronization and direction modes

Sync offers two modes of operation: one-time ("on demand") synchronization and continuous synchronization, and three direction modes: uni-directional, bidirectional, and multi-directional.

One-time versus continuous synchronization

One-time synchronization

In this mode, async performs synchronization of the endpoints, and exits. If available, async uses an existing snapshot to determine changes, unless instructed to drop the snapshot and scan the file system again (see the -x option in Async command reference).

This mode need to be used for one_time operations, or for periodic, scheduled synchronizations where file systems do not support event-based change notification. For the latter, async can be scheduled as a cron job to run periodically.

One-time synchronization is supported between all operating systems.

Continuous synchronization

In this mode, Sync synchronizes the endpoints and continues running. As file system updates occur (for example, files or directories are added, deleted or modified), Sync detects these changes and synchronizes with the peer endpoint.

Continuous mode is supported only when the file source is Windows, Linux, or macOS. See the following table for the operating system requirements for the Sync server and client for the different Sync directions.

Continuous Sync direction Supported Sync client OS Supported Sync server OS
PUSH Linux, Windows, macOS All
PULL All Linux, Windows, macOS
BIDI Linux, Windows, macOS Linux, Windows, macOS

Sync direction modes

Uni-directional

Similar to rsync, the uni-directional mode supports replication of files and directories, and any updates to these (including deletions, renames, moves, and copies) from a source to a target. The direction of replication can be specified as a "push" or "pull" operation, relative to the initiating host. Once a snapshot is taken after the first replication, all file system updates are recognized against this snapshot, and no comparison of source to target over the WAN is performed (as in rsync). Sync supports most of the same uni-directional synchronization options as rsync, such as include and exclude filters, overwrite only if newer, symbolic link handling, and preservation of file system ownership and timestamps.

Bidirectional

Bidirectional mode supports the replication of all file and directory updates between the peers. For any case in which the most recent version of an update cannot be reliably determined, or when a file changes on both endpoints concurrently, sync flags the update as a conflict and leaves the peer file systems in their present state (and in conflict). Files in conflict can be reviewed by using the asyncadmin command line tool (see asyncadmin command line options). In this version, it is up to the operator to resolve conflicts manually.

Multi-directional

Multi-directional synchronization requires one Sync session (one async process execution) for each remote peer. Any number of async processes can be run concurrently, and any number of peers can be synchronized concurrently; however, a downstream peer cannot be configured to synchronize "back" in a loop to an upstream peer.