Backaroo – Help

Installing

Neither Sender nor Receiver have installers; just double-click the application icon to open.  When they are first opened, both applications unpack some components to <home-folder>/Library/Application Support/Backaroo.  The Receiver also saves some components to <Macintosh HD>/Library/Application Support/Backaroo.  The built-in uninstaller removes these traces.

Uninstalling

Both applications have an ‘uninstall…’ item in their application menu.  This will remove all aspects of the application (including the application itself), stop the ‘rsync’ service (for the Receiver) and remove all Jobs (on the Sender) and all Accounts (on the Receiver).  The uninstaller does not delete any backups that the operator has already made; this sensitive task is left to the operator.

Brief overview

Backaroo Receiver installs, configures and manages the ‘rsync’ service.  The Receiver application allows the administrator to start and stop this service, and add Accounts.  An Account defines who is allowed to backup to this machine, where their backups are stored, and how many backups are retained.  Backaroo Sender is then used to configure Jobs.  A Job defines what items are sent, where the Receiver is and, optionally, when the backup should be run.  The Sender employs rsync to backup to the Receiver.

Creating an Account on the Receiver

Use the ‘Add Account’ toolbar item to define an Account.  Specify values for all fields.  Note that it is possible to specify that all backups should be kept by setting the ‘number of backups to keep’ to ‘0’ – although the user interface will reflect this by replacing ‘0’ with the word ‘all’.  Backaroo Receiver will create a folder within the specified ‘storage location’.  The folder is given a unique name (e.g. ‘1426F95E-5EA0-4729-B3D9-D790DB865C59’) and will contain subfolders such as ‘history’ and ‘in-progress/data’.  Duties of subfolders are detailed below.

Creating a Job on the Sender

Use the ‘Add Job’ toolbar item to add a Job.  The effect of some options are not immediately obvious and are detailed here.

In the ‘source’ tab, you can choose to ‘include…’, ‘exclude…’ or ‘backup everything’.  Be aware that Backaroo Sender can only backup files and folders to which the operator has permission to read.  Specifying unreadable files/folders may, at best, result in a ‘partial transfer due to error’.  In this case, analyse the transfer log or the error log to identify unreadable items and exclude these from the backup or otherwise resolve (e.g. change ownership).

In the ‘options’ tab, ‘dry run’ will go through the motions of running the backup without actually transferring any data and ‘detailed logging’ will increase the verbosity of messages in the logs.  These options may be useful for troubleshooting or testing.

Viewing the backups

In Backaroo Receiver, use the ‘Show Backups’ toolbar item to reveal the backups in the Finder.  The duties of the subfolders shown are as follows.  The ‘in-progress/data’ folder contains backups that are either in-progress or were interrupted.  Although files and folders within ‘data’ are integral and complete, overall this folder is incomplete.  ‘In-progess/partial-files’ (which exists only as needed) contains files which are not integral, that is to say, files which were ‘half transferred’ when the backup was interrupted.  These files form a good basis for a speedy completion if/when the backup is resumed, however, they are incomplete at a binary level.  The ‘in-progress’ folder should be generally ignored.  The ‘history’ folder is more useful.  This contains the backed-up data from successfully completed backups, held in folders named to reflect the date and time at which the backup succeeded.  The folders are named like YYYY-MM-DD–HH-MM-SS where Y is year, M is month, D is day, H is hour, M is minute and S is second.  (If two or more backups occur at the same second, only the most recent will be kept.)  Time is taken from the clock on the Receiver machine at the point when the transfer of files finished.  For convenience, the ‘latest’ folder is a shortcut to the most recent complete/successful backup.

Note that backups come with a full structure of parenting folders, from the root of the ‘Macintosh HD’ right out to the file(s) selected in Sender.  So if Bob uses Sender to backup just one file from his desktop, expect to find a backup store containing something like ‘/data/Users/Bob/Desktop/some-file.txt’.  I.e. note that the parenting folders have been replicated in the backup to give some positional context to the backed-up file.  This may be handy when restoring.  It is less handy, however, when the highest-level folder is ‘invisible’.  This is an ‘extended attribute’ of the folder and is typified by the ‘/Volumes’ folder in which external (and internal) storage devices are availed to the file-system.  If Bob has selected to backup ‘/Volumes/Lacie/Pictures/stalin.jpg’ then we might expect to find ‘Volumes’ as the first directory within ‘data’, however, Finder hides this from view as Sender has preserved the ‘invisible’ attribute of the ‘Volumes’ folder.  To expose this folder, return to Backaroo Receiver and alt-click on ‘Show Backups’.  A panel is opened which reveals hidden items and allows you to reveal them in Finder, too.

Restoring backups

No tool is provided for restoration.  In the (hopefully) rare event that restoration is necessary, the operator is expected to treat backups in ‘history’ just like any other files and folders; they can be copied to external storage, sent across the network, emailed, etc..  However, it is recommended that the backups are copied rather than moved, as their presence accelerates subsequent backups.

Troubleshooting

At its core, Backaroo uses rsync.  Each Job leaves a log of rsync operations which are accessible in the view menu.  The transfer log is arguably the most useful as each line is date/time stamped, and errors are logged with some context and explanation (e.g. “2016/10/20 20:31:27 [11272] rsync: link_stat “/Users/Bob/Desktop/some-file.txt” failed: No such file or directory (2)”).

The Sender’s transfer log is usually more informative than the Receiver’s.  If the Sender has selected to ‘encrypt network traffic’ then ‘SSL log’ from the ‘view’ menu contains detail on the setup and teardown of the ‘Secure Sockets Layer’ over which rsync transports the backups.  Selecting ‘detailed logging’ in the Sender increases the verbosity of all logs (both on the Sender and on the Receiver).