arqcloudrestore

An open-source command-line utility for restoring from backups created by Arq Cloud Backup

Download a binary version here.

Get the source code here.

The data format is documented here.

arqcloudrestore can list the computers in your Arq Cloud Backup account, list the folders in the latest backup record, and restore a folder or file.

Usage

To use arqcloudrestore:

  1. Go to cloud.arqbackup.com, log in, click Account from the menu, and click the Create Credentials button at the bottom of the page. We'll generate read-only credentials (access key ID and secret access key) for you to directly access your account's backups, and present them as a JSON file, like this:
    {
        "access_key_id": "2NDLFMJAGYXE1Z6KB8HZ",
        "secret_access_key": "VkTNJ37ykTQF5fashPJYKduzyMPTvyzAFjYLIzZ3",
        "region_name": "us-east-1",
        "bucket_name": "arq-cloud-user-453642a8-55fd-451d-a026-22543399ab51"
    }
    
  2. Save that JSON as a file called arqcloudrestore.config in your Downloads directory.
  3. Download arqcloudrestore.zip and unzip it to get arqcloudrestore in your Downloads directory.
  4. Open Terminal and type cd Downloads to switch to your Downloads directory.
  5. Get Help

    Type arqcloudrestore with no arguments to see usage instructions.

    
    Usage:
        arqcloudrestore listplans
        arqcloudrestore printplan plan_uuid
        arqcloudrestore printcommits plan_uuid
    	arqcloudrestore listfiles plan_uuid backup_record_identifier disk_identifier
    	arqcloudrestore restore plan_uuid backup_record_identifier disk_identifier path
    

    Listing Plans

    To list your "plans" (1 per computer in your account), use the listplans command.

    
    $ arqcloudrestore listplans
    54c27373-4f9a-41ad-b779-e23287af8df5
    

    (Your UUID(s) will be different.)

    Print Plan

    To print the plan settings for a given plan, use the printplan command.

    
    $ arqcloudrestore printplan 54c27373-4f9a-41ad-b779-e23287af8df5
    

    You'll be prompted for your encryption password. If you chose a separate encryption password at account-creation time, use that. Othewise, use your account password.

    You'll get JSON output containing all the settings for the computer. See the data format documentation for an explanation.

    Print Commits

    To print the list of backup records ("commits") use the printcommits command.

    
    $ arqcloudrestore printcommits 54c27373-4f9a-41ad-b779-e23287af8df5
    

    Again you'll be prompted for your encryption password. If you'd rather not keep entering it, set the ACR_ENCRYPTION_PASSWORD environment variable:

    
    $ export ACR_ENCRYPTION_PASSWORD=mysupersecret
    

    You'll get a list of backup records with identifier, date created, and a list of disks with the mount point and total bytes backed up for each. For example:

    
    Backup Record 3e5acb1a722053069dd57ffc758428ed11cf3e4dfa11746848882a9c1486a428 2018-11-14 12:00:05 +0000
    	Disk Identifier: 8F51B214-72F4-39C7-AB9E-8730AC577513
    		Mount Point: /
    		Bytes: 437550
    	Disk Identifier: %2FVolumes%2FGoogleDrive
    		Mount Point: /Volumes/GoogleDrive
    		Bytes: 7621627
    Backup Record 890f3223fd6377c75a7543f979b353afa3f827e26f1c9994de4cd125dcc1e494 2018-11-14 11:58:47 +0000
    	Disk Identifier: 8F51B214-72F4-39C7-AB9E-8730AC577513
    		Mount Point: /
    		Bytes: 437550
    	Disk Identifier: %2FVolumes%2FGoogleDrive
    		Mount Point: /Volumes/GoogleDrive
    		Bytes: 7621627
    

    List Files

    To print the list of files in a disk within a commit, use the listfiles command and give the plan UUID, the commit identifier, and the disk identifier.

    
    $ arqcloudrestore listfiles 54c27373-4f9a-41ad-b779-e23287af8df5 3e5acb1a722053069dd57ffc758428ed11cf3e4dfa11746848882a9c1486a428 8F51B214-72F4-39C7-AB9E-8730AC577513
    

    You'll get list of all files/folders backed up for that disk identifier in that commit.

    Download Files

    To download a file or folder from a commit, use the restore command and give the plan UUID, the commit identifier, the disk identifier, and the path within the volume.

    
    $ arqcloudrestore restore 54c27373-4f9a-41ad-b779-e23287af8df5 3e5acb1a722053069dd57ffc758428ed11cf3e4dfa11746848882a9c1486a428 %2FVolumes%2FGoogleDrive "/My Drive"
    
    The file or folder will be downloaded to your current directory.

    License

    Copyright (c) 2018, Haystack Software LLC http://www.haystacksoftware.com
    
    All rights reserved.
    
    Redistribution and use in source and binary forms, with or without
    modification, are permitted provided that the following conditions are met:
    
    * Redistributions of source code must retain the above copyright
    notice, this list of conditions and the following disclaimer.
    
    * Redistributions in binary form must reproduce the above copyright
    notice, this list of conditions and the following disclaimer in the
    documentation and/or other materials provided with the distribution.
    
    * Neither the names of PhotoMinds LLC or Haystack Software, nor the names of 
    their contributors may be used to endorse or promote products derived from
    this software without specific prior written permission.
    
    THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
    "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
    LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
    A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
    OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
    SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
    TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
    PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
    LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
    NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
    SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.