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. RsyncOSX is compiled with support for macOS Catalina and macOS Big Sur only the latest version is released here RsyncOSX can also be installed by homebrew - brew install --cask rsyncosx RsyncOSX is built as Universal macOS Binary.

Important info about using RsyncOSX

RsyncOSX is not developed to be an easy to use synchronize and backup tool. The main purpose is to assist and ease the use of rsync to synchronize files on your Mac to remote FreeBSD and Linux servers. And of course restore files from those remote servers. The UI of RsyncOSX can for users who dont know rsync, be difficult or complex to understand. Using RsyncOSX requires some knowledge of rsync.

Install RsyncOSX

RsyncOSX is released in version 6.5.8 (24 March 2021). It is not required to install the menu app (RsyncOSXsched.app). The menu app is for executing scheduled tasks only. RsyncOSX is signed and notarized. Install by Homebrew RsyncOSX can be installed by homebrew - brew install --cask rsyncosx. Install by download Download the latest version form GitHub. The command shasum -a 256 ~/pathtodownload/RsyncOSX-version.dmg will print the shasum for the .dmg file. For your own safety verify the shasums.

JSON support

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. Before converting to JSON, in user configuration, make a backup of the current configuration files. The current configurations is backed up in the catalog $Home/Documents/RsyncOSXcopy-$date-suffix. Enabling JSON To enable JSON support is a two step process. There are three parts in the File menu dedicated for JSON support:

Latest version of rsync

The default version 2.6.9 of rsync in macOS was released in nov 2006. And there has been several fixes and releases since then. The news about the current release of rsync is here. Due to new features in rsync and dependency to shared libraries it is not possible to bundle the latest version together with RsyncOSX. It is adviced to install rsync as part of Homebrew. In RsyncOSX select user configuration and set path for optional version of rsync.

The RsyncOSX changelog

If you are utilizing 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 will also ask permission for accessing your home catalog the 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.

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 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).

Add configurations

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. For remote server catalogs enter by text only.

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.

Execute several tasks

There are three options for executing several synchroniz tasks. The three toolbar buttons are: search for all tasks with files to synchronize and execute The above can also be executed by the ⌘B shortcut. do an estimation run and present which tasks with files to be synchronized The above can also be executed by the ⌘T shortcut. as above, but for the selected tasks You can also select a task and by the ⌘R shortcut execute that task.

Execute 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.

Localization

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 Norwegian - by me English - the base language of RsyncOSX Italian - by Stefano Steve Cutelle' Dutch - by Marcellino Santoso Localization is done by utilizing Crowdin to translate the xliff files which are imported into Xcode after translating.

Logging

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 date by search field. Any column can be sorted by selecting the appropriate column. The sort direction, ascending or descending, is selected by direction of the arrow. Log records can be selected for delete as well.

Menuapp

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.

My DIY NAS

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.

Passwordless logins by ssh-keys - assisted by RsyncOSX.

RsyncOSX utilizes user set ssh keypath and identityfile. The ssh parameter within the rsync command is if set by the user: -e "ssh -i ~/.ssh_keypath/identityfile -p NN" where: -i is the ssh keypath and identityfile -p is the port number ssh communicates through, default port 22 If global ssh parameters are set, it applies to all configurations. It is possible to set other ssh values on each task. There is a check and QA of ssh keypath and identityfile.

Restore files

A restore should always be executed carefully. There is always a possibilty to delete or replace newer files with older when executing a restore. It is only allowed to do a restore to a temporary restore catalog. To set a temporary restore path select userconfiguration and set temporary path restore. There are two types of restore: full restore if the remote (destination) is a snapshot the Full restore is from the latest snapshot restore files if the remote (destination) is a snapshot the file list might be huge, depends upon how many snapshots and how many files in a snapshot any file from any snapshot might be restored Step one in a restore is to select from which configuration a restore is to be executed.

Rsync daemon setup

With a few tweaks it is possible to get RsyncOSX working with rsync daemon. Be aware of not utilizing ssh, transfer of data is not encrypted. This is might not a problem on a local network, but I would not advise it on a public network. Also be aware of snapshot is not possible with a rsync daemon setup. Setting up a rsync daemon setup require a server side setup and some tweaks in RsyncOSX.