How to use RsyncOSX

RsyncOSX is a signed and notarized GUI on top of the command line utility rsync, which is a file based tool for synchronization of files. It is built as a Universal macOS Binary which means it run natively on Apple Silicon and Intel based Mac computers. the latest version of RsyncOSX is compiled for macOS Big Sur and later the changelog RsyncOSX can also be installed by homebrew: brew install --cask rsyncosx.

Add task

A task require minimum a local catalog and a remote catalog. Continue to add new tasks until completed and tasks are saved to permanent storage after each entry. Select local catalog either by GUI, drag and drop or by enter text directly. Add is selected by choosing Add task on the sidebar menu. For remote catalogs only drag and drop for local attached volumes. For remote server catalogs enter by text only.


RsyncOSX is signed and notarized. Please see info about the latest version of rsync in install. Using RsyncOSX requires some knowledge of rsync. The main objective for RsyncOSX is to ease the use of rsync, not teach macOS users how to use rsync. That is beyond the scope of RsyncOSX. Setting the wrong parameters to rsync can result in deleted data. And RsyncOSX will not stop you for doing so. That is why it is very important to execute a simulated run (--dry-run) and inspect what happens before a real run.

Important about RsyncOSX

If you are new to the command line tool rsync and RsyncOSX please read this information. The –delete parameter and new tasks RsyncOSX is only a GUI on top of the command line tool and it is rsync which does actual work, not RsyncOSX. The --delete parameter is a default parameter set by RsyncOSX to rsync. The parameter instructs rsync too keep the source and destination in sync. The parameter instructs rsync to delete all files in the destination which are not present in the source.

How to compile RsyncOSX

RsyncOSX is only depended upon Cocoa and Foundation classes which are standard Swift libraries. There are two ways to compile, either in Xcode or utilize make from command line in RsyncOSX catalog. To use make require Xcode command line utilities to be installed. Execute the following command and follow the instructions. xcode-select --install Remove signing credentials or replace To compile you have to either remove signing or replace signing credentials. To remove or replace select Target RsyncOSX and tab “Signing and Capabilities”.

Remote servers and passwordless logins

There are two ways to setup passwordless logins to a remote server. RsyncOSX supports both. It is strongly advised to use ssh and ssh-keys because the traffic is encrypted and it is considered more secure. Encrypted protocol by ssh and ssh-keys Utilizing ssh enables passwordless logins to remote servers by ssh private and public key-pair. Using ssh-keys is in general considered more safe than standard password solutions (single factor authentication). ssh-keys are based upon public-key cryptography.

Check synchronized files

The check of synchronized data is triggered by the File -> Check synchronized menu or the ⌘K shortcut. The --archive parameter is the normal parameter to use in synchronize and snapshot tasks because it is fast. The --archive parameter to rsync preserves a lot of attributes of files when synchronizing. Files transferred in –archive mode ensures that symbolic links, devices, permissions, ownerships, modification times, ACLs, and extended attributes are preserved. When synchronizing files based upon the –archive parameter, rsync compares file size and last modification time to compute which files to be synchronized.

Combine and RsyncOSX

In development of RsyncUI, I learned about the new declarative framework Combine. Combine is a great framework and makes the code easy to write and easy to read. In the Combine code for encode and write data to JSON file, the publisher requiere macOS BigSur and later. Much of the code where Combine is used is shared with RsyncUI. Combine is utilized in the following parts of the app: read user configurations from permanent store read and write configurations read and write schedules and logs read and convert configurations and schedules from PLIST format to JSON format the process object, executing tasks preparing the output from rsync process

Execute several tasks

There are three options for executing several synchronize tasks. The three toolbar buttons are: Search for all tasks with files to synchronize and execute. or by ⌘B shortcut Do an estimation run and present which tasks with files to be synchronized. or by ⌘T shortcut As above, but for the selected tasks. or by ⌘R shortcut A double click on a task executes an estimation run and shows the result of the estimation.

Execute single tasks

In Synchronize view tasks can be executed as single tasks. Execute single tasks require two double clicks: the first double click for estimation and the second double click for executing the task The output from rsync is presented after each run. Verify and execute a single task Execute a single task is a two step operation. The first is an estimation or verify run, a dry-run execution. The second one is the real run.