RsyncOSX

Parameters to rsync

RsyncOSX allows the user to set parameters to rsync.

Passwordless logins by ssh-keys

RsyncOSX utilizes user set ssh keypath and identityfile. Default values for ssh are ~/.ssh/id_rsa and portnumber 22. It is not required to set your own values for key path and identityfile if default values are used. The ssh parameter within the rsync command is, if set by the user: -e "ssh -i ~/.ssh_keypath/identityfile -p NN" where -i ~/.ssh_keypath/identityfile is the ssh keypath and identityfile and -p NN is the port number ssh communicates through, default port 22

Restore files

A restore of files should always be executed carefully. It is only allowed to do a restore of files 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 restore by files if the remote is a snapshot the list of files might be huge, depends upon how many snapshots and how many files in a snapshot A restore always start with selecting the task and then the Filelist button.

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.

RsyncOSX config files

RsyncOSX read and store configurations, log records and user settings as JSON files. The location of files is: $HOME/.rsyncosx/macserialnumber. RsyncOSX evaluates the computer mac serial number at startup. Configuration files $HOME/.rsyncosx/macserialnumber/configurations.json If profile is utilized: $HOME/.rsyncosx/macserialnumber/profile/configurations.json Log records $HOME/.rsyncosx/macserialnumber/schedules.json If profile is utilized: $HOME/.rsyncosx/macserialnumber/profile/schedules.json User settings The user settings are stored as: $HOME/.rsyncosx/macserialnumber/rsyncosxconfig.json The user settings applies to all profiles.

Signing and notarization

RsyncOSX is signed with my Apple ID developer certificate and notarized by Apple. This means that the app is verified and checked for not containing malicious code and it will work with Apples Gatekeeper technology. From macOS 10.15 Catalina, notarizing is required for all software. The message is “Apple checked it for malicious software and none was detected.” You can also verify the signing by utilizing xcode developer tools. If you have Xcode developer tools installed, by executing the following command you can verify RsyncOSX:

Snapshots

Utilizing snapshot is an effective method to restore old versions of data and deleted files. Snapshot utilize hardlinks and only changed and deleted files are saved as separate files in a snapshot. Files which are not changed are hardlinks to the original file. If a file.txt is saved in snapshot number one and never changed or deleted, the file file.txt in the latest snapshot is a hardlink only to the original file.

User configuration

There are a few parameters to choose in user configuration. Parameters are saved to permanent store. Rsync v3.2.x rsync - set optional path if NOT by Homebrev - any version of rsync should work, but only version 2.6.9 and 3.2.x are tested and verified utilizing the snapshot feature require version 3.2.x of rsync optional path for rsync: if utilized version of rsync is not installed by Homebrew set path to rsync temporary path restore: preset temporary path for restoring single files and catalogs preset temporary path for a full restore If there is a not valid rsync path is set an error is presented.

Verify synchronized files

The verify 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.