Restic is a backup client written in Go language, it is highly secure and efficient. Each Restic backup is a snapshot of the server/files/directory, deduplicated from what was stored before. Any restore to a given backup will restore the server/files/directories to the exact state they were at that time.
This is a quick-start tutorial that covers Restic usage with Storj DCS.
In this guide, we will cover only some of the basic features of the tool. The complete documentation for Restic is located here, at their complete command reference.
If you haven't yet, create a Storj DCS account before following the rest of the tutorial.
You will need the following:
Install and configure Rclone by following this walkthrough
Read through the Restic-Rclone documentation here
The bucket for the backup needs to exist before using Restic. Use Rclone to create the bucket:
$ rclone mkdir storj:bucket
The general backend specification format is
<remote>:<path> component will be directly passed to Rclone. When you configure a remote named
foo, you can then call Restic as follows to initiate a new repository in the path
bar in the repo:
$ restic -r rclone:foo:bar init
First, install Restic for your operating system, then execute the init command:
restic --repo rclone:storj:bucket/my-backup init
--repo defines that we will use
rclone as a tool for backup with
storj configuration. The last part
bucket/my-backup specifies where our backup will be stored remotely.
storj refers to the
rclone configuration name which you chose during setup.
Now, enter a password for your repository.
Repository data will be created directly at the specified bucket prefix e.g.
Now you are ready to do your first backup!
Execute the backup command:
restic --repo rclone:storj:bucket/my-backup backup ~/directory-to-backup
You will be able to see the progress of the backup and a summary at the end of the process.
With every backup, Restic is creating a new snapshot with contents of a directory at the moment. To remove old and unused snapshots we need to execute the
restic --repo rclone:storj:bucket/my-backup forget --keep-last 2 --prune
--keep-last flag is for keeping last
n snapshots. This command offers multiple flags for defining deletion rules. See
restic help forget for more options.
--prune flag is for removing unreferenced data. Without this option, the
forget command will remove the snapshot but not the referenced data.
If you want to verify the consistency of your backup, run the
restic --repo rclone:storj:bucket/my-backup check
To restore the latest snapshot of your backup:
restic --repo rclone:storj:bucket/my-backup restore latest --target ~/restore
latest option means we want to restore the latest snapshot.
--target flag defines the directory where the backup will be restored.
For more detailed information around Restic usage, please visit the Restic documentation page.