Synchronization and Direction Modes
Sync offers two modes of operation: one-time ("on demand") synchronization and continuous synchronization, as well as three direction modes: uni-directional, bi-directional, and multi-directional.
One-time vs. Continuous Synchronization
In this mode, async performs synchronization of the endpoints, and exits. If available, async uses an existing snapshot to determine changes, unless specifically instructed to drop the snapshot and scan the file system again (see the -x option in async Command Reference).
This mode should 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.
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 Syncdirections.
|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
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/exclude filters, overwrite only if newer, symbolic link handling, and preservation of file system ownership and timestamps.
Bi-directional 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, Syncflags the update as a conflict and leaves the peer file systems in their present state (and in conflict). Files in conflict can be reviewed 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 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.