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.
To use arqcloudrestore:
{
"access_key_id": "2NDLFMJAGYXE1Z6KB8HZ",
"secret_access_key": "VkTNJ37ykTQF5fashPJYKduzyMPTvyzAFjYLIzZ3",
"region_name": "us-east-1",
"bucket_name": "arq-cloud-user-453642a8-55fd-451d-a026-22543399ab51"
}
arqcloudrestore.config
in your Downloads directory.arqcloudrestore
in your Downloads directory.cd Downloads
to switch to your Downloads directory.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
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.)
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.
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
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.
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.
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.