How to use RsyncOSX

RsyncOSX is a GUI ontop of the command line utility rsync, no more no less. Rsync is a file-based tool for transferring and synchronization of files. RsyncOSX supports both synchronize and snapshot tasks. There is no custom solution for the synchronized archive. And you can quit utilizing RsyncOSX (and rsync) at any time and still have access to all synchronized files. And there is a short about me. RsyncOSX is compiled with support for macOS 10.

Install RsyncOSX

RsyncOSX is released in version 6.4.6 (23 September 2020). It is not required to install the menu app ( The menu app is for executing scheduled tasks only. RsyncOSX is signed and notarized. Install The command shasum ~/pathtodownload/RsyncOSX-version.dmg will print the shasum for the .dmg file. For your own safety verify the shasums. RsyncOSX 6.4.6.dmg: 12ea3768699946bdd43f6c4768187b7f6ba6245a RsyncOSXsched 6.4.6.dmg: a9e9b797c8c9bf455f921e50499b54bd4296533d To install RsyncOSX open the downloaded RsyncOSX-version.dmg file. Drag the RsyncOSX icon to the default /Applications catalog or any other preferred catalog for install.

JSON support

Not yet released. RsyncOSX supports read and write configurations and logs as JSON files. The user will have the option to convert existing configurations and logs from plist to JSON. The JSON support is part of work to make a cross-plattform version of RsyncOSX utilizing TypeScript (and other tools). If there will be a cross-plattform version of RsyncOSX in 2021 remains to see. It depends on how much work there is and if I am able to learn how to make apps with TypeScript and other tools.

Latest version of rsync

The default version of rsync in macOS is old. Version 2.6.9, protocol version 29 was released in nov 2006. The current release of rsync is version 3.2.3 protocol 31. Due to new features in new versions of rsync and dependency to shared libraries it is not possible to bundle the latest version of rsync together with RsyncOSX. But if you want to compile your own version of rsync, please see last on this page.

The RsyncOSX changelog

If you are installing on macOS Catalina or macOS Big Sur and utilize a local version of rsync, execute the rsync utility in a terminal window before using RsyncOSX. There is a process of granting access for the rsync utility before using it by RsyncOSX. MacOS Catalina or macOS Big Sur will also ask permission for accessing your home catalog first time you start RsyncOSX. If you also utilize the menu-app (RsyncOSXsched), be aware of you might have to force quit RsyncOSX the first time you start the menu-app.

Why use RsyncOSX?

There is one simple answer to the question and the answer is rsync. Rsync is a rock solid, well proven, secure, fast, reliable and very accessible command line tool across platforms. RsyncOSX is just a GUI for executing rsync commands. Rsync is a command line tool with tons of parameters. Choosing the right parameter and to get the predicted result from rsync might be a challenge. RsyncOSX does the job for you.

Documentation of RsyncOSX source

Compile the code See instructions for compile. There are about 130 classes with 14,700 lines of code in RsyncOSX. The source This is some information about the design and code of RsyncOSX. The documentation is only a brief summary of some parts of RsyncOSX. The design of RsyncOSX is based upon ideas of the MVC pattern. One of the objectives in the MVC pattern is to separate the views and models.

How to compile RsyncOSX

Before compiling 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.

Remote servers and passwordless logins

There are two ways to setup passwordless logins to a remote server and RsyncOSX supports both. It is advised to use ssh and ssh-keys, method one below, 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).

A short intro to RsyncOSX

All configurations to execute are listed in table. From the Synchronize view most actions (edit configurations, adding parameters to rsync, delete configurations) regarding configurations are executed. Configurations can be saved in user selected profiles. The profile in use is shown in label Profile: profilname. Information about new or delete files and numbers remote of directories are only available if version 3.x of rsync is used. Passwordless logins to remote servers Using RsyncOSX for backup to remote servers require to setup ssh passwordless logins.

Add configurations

Adding a configuration is easy. A configuration require minimum a local catalog and a remote catalog. After entering information about a configuration select the Add button to add it to RsyncOSX. Continue adding new configurations until completed and configurations are saved to permanent storage after each entry. Select local catalog either by drag and drop or by enter text directly. For remote catalogs only drag and drop for local attached volumes.

Automatic backups

The automatic feature of RsyncOSX is triggered by ⌘B shortcut or by select the double arrow. RsyncOSX executes a –dry-run task for all configurations and executes a synchronize run only for tasks with data to be transferred or files to be deleted. The automatic backup can be aborted at any time.

Configurations (tasks)

The configurations are read from the permanent storage and kept in memory until a new profile is loaded or RsyncOSX quits. Each record (one task) are read from permanent storage as a NSDictionary item, copied to a Configuration and loaded into an Array. the struct Configuration.swift holds data about one task the class Configurations.swift holds all computed data and methods operating on tasks the object is also responsible for initiate reading data from permanent store when the object is created the object is also responsible for initiate a write operation after any change in configurations Every time configurations are read from permanent store, the rsync arguments are computed and the result is stored in memory only by the struct ArgumentsOneConfiguration.

Execute tasks in Quickbackup

There are two options for executing quick synchronize tasks, either estimate and select or execute directly. In either way RsyncOSX does an estimation run and the numbers to indicate the progress of synchronizing. execute synchronizing task directly, ⌘B shortcut do an estimate first and select The quickbackup executes a estimation run and selects all tasks with files to be synchronized. To commence the actual synchronizing select the marked play button.

Executing single tasks

In Synchronize view (which is the opening view) tasks can be executed as singletasks. Execute single tasks requires a couple of double clicks: one for estimation run and the second for executing the real task. The output from rsync is presented after each run. There are three options for editing after selecting a task in row: edit params (to rsync) delete task After selecting a row choosing one of the above pops up a new view according to selection.


RsyncOSX and the menu app RsyncOSXsched are prepared for localization. Default language for both is English. RsyncOSX is localized to: Chinese (Simplified) - by StringKe (Chen) German - by Andre Voigtmann French - translated by crowdin Norwegian - by me English - the base language of RsyncOSX Italian - by Stefano Steve Cutelle’ Dutch - by Marcellino Santoso, in progress Indonesian - Marcellino Santoso, in progress Localization is done by utilizing Crowdin to translate the xliff files which are imported into Xcode after translating.


Logging in RsyncOSX might be switched on/off in user configuration. All log records are listed in table within Logs tab. The log records are by default sorted with most recent ontop. Log records can be filtered by text search by selecting the appropriate column. The direction, ascending or descending, is selected by direction of the arrow. Select column to filter Log records can be selected for delete as well. To filter a log record select the appropriate column.


The menu app is available for download together with RsyncOSX, see install for more info. The menu app is a scaled down and minimal app for executing scheduled tasks in RsyncOSX. It executes as a menu app and keeps track on next task to execute. The app is monitoring all schedules in all profiles. Scheduled tasks are added in RsyncOSX. RsyncOSX does not execute scheduled tasks. Scheduled tasks are only added and deleted within RsyncOSX.


This is a short resume about my do it yourself (DIY) NAS. I do not spend much time building or maintaining my NAS. The main purposes of my NAS are: storing backup of my files and share out disk (by SMB/CIFS and AFP) My knowledge about computer hardware is very limited. The most important objective is to get hardware which is supported by the OS and NAS software. The form factor of the motherboard also narrows the possibilities.


RsyncOSX utilizes the object RsyncParameters.swift to analyze and set whatever parameters to rsync the user sets. There are no check if parameters set for rsync is correct or not. If the user enters bad or wrong parameters, RsyncOSX passes bad parameters to rsync. Predefined parameters to rsync are displayed setting the corresponding parameter in dropdown menus (comboboxes). If option user is selected in dropdown menus, RsyncOSX saves and passes whatever the user sets to rsync when task is executed.