Cyberithub

How to Install Restic backup tool on Ubuntu/Debian Linux

Advertisements

In this article, we will see how to install restic backup tool on Ubuntu/Debian based linux systems. Restic is a free and open source, cross platform backup tool designed to create and manage backups efficiently and securely on multiple types of storage backends including Amazon, Google and Microsoft cloud storages. It can take backup of files, directories and even entire filesystems and store it in different cloud storage services. Similarly, it can also restore data from those cloud storages to almost anywhere you would like without much trouble.

It employs features like Data Integrity and Data deduplication which ensures only unique data blocks are stored, hence saves both disk space and bandwidth. Restic uses AES-256 encryption algorithm to encrypt all your backups, hence preventing anonymous to access your data without correct authentication. Restic also allows you to take incremental backups instead of taking entire backup everytime, hence making process lot efficient and faster. It works hassle free on almost all famous platforms such as Linux, Mac, Windows and even on FreeBSD. Here we will see steps to install and use Restic on Ubuntu/Debian based Linux Systems.

 

How to Install Restic backup tool on Ubuntu/Debian Linux

How to Install Restic backup tool on Ubuntu/Debian Linux

Also Read: How to Install Google Cloud AI Python client library to interact with Vertex AI

Step 1: Prerequisites

a) You should have a running Ubuntu/Debian(in our case, we are using Ubuntu 22.04 LTS here) Server.

b) You should have sudo or root access to run privileged commands.

c) You would require wget and bunzip2 utility in case you would like to install the binary package.

d) Minimum hardware requirements:-

  • CPU: Any modern cpu supported in Ubuntu/Debian system would be enough for optimal performance.
  • Memory: Minimum 2GB of RAM required for basic backup and restore operations. Higher memory would be required for larger data size as Restic loads metadata into memory.
  • Hard Disk: Storage would depend of the size of the data to backup but restic binary package takes around 10MB size.

 

Step 2: Update Your Server

It is always recommended to look for latest features and updates before installing any new packages and install them using sudo apt update && sudo apt upgrade command as shown below. This will keep your system stable and secure at all times.

cyberithub@ubuntu:~$ sudo apt update && sudo apt upgrade

 

Step 3: Install Restic

There are multiple ways to install and use restic on ubuntu/debian based linux systems. You can choose any of the below method to install depending on your requirement.

a) Using apt or apt-get

Since restic is available through ubuntu repo, if you are not worried about latest version then you can choose to install directly from repo by using sudo apt install restic command as shown below. This will download and install the package along with all its dependencies.

cyberithub@ubuntu:~$ sudo apt install restic
[sudo] password for cyberithub:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
Suggested packages:
sphinx-rtd-theme-common
The following NEW packages will be installed:
restic
0 upgraded, 1 newly installed, 0 to remove and 77 not upgraded.
Need to get 7,391 kB of archives.
After this operation, 20.3 MB of additional disk space will be used.
Get:1 http://in.archive.ubuntu.com/ubuntu jammy-updates/universe amd64 restic amd64 0.12.1-2ubuntu0.3 [7,391 kB]
Fetched 7,391 kB in 3s (2,523 kB/s)
Selecting previously unselected package restic.
(Reading database ... 242087 files and directories currently installed.)
Preparing to unpack .../restic_0.12.1-2ubuntu0.3_amd64.deb ...
Unpacking restic (0.12.1-2ubuntu0.3) ...
Setting up restic (0.12.1-2ubuntu0.3) ...
Processing triggers for man-db (2.10.2-1) ...

b) Using binary package

If you are looking for latest version then I would recommend you to visit GitHub and download the latest stable version using wget utility. Below wget command would download and save the package in current working directory as restic.bz2

cyberithub@ubuntu:~$ wget -O restic.bz2 -q https://github.com/restic/restic/releases/download/v0.17.3/restic_0.17.3_linux_amd64.bz2

Once it is successfully downloaded, you have to extract the package by using bunzip2 restic.bz2 command as shown below.

cyberithub@ubuntu:~$ bunzip2 restic.bz2

Next you have to provide execute permission to restic utility by using chmod +x restic command.

cyberithub@ubuntu:~$ chmod +x restic

To make restic utility available across system, move it to some globally recognized path such as /usr/local/bin by using sudo mv restic /usr/local/bin command as shown below.

cyberithub@ubuntu:~$ sudo mv restic /usr/local/bin/

 

Step 4: Check Version

After successful installation, check installed version by using restic version command as shown below.

cyberithub@ubuntu:~$ restic version
restic 0.17.3 compiled with go1.23.3 on linux/amd64

 

Step 5: Initialize a Repo

Before starting to take backup, we have create a restic repo where all backup snapshots can be taken. To do this, let's create a directory called backup under user's home directory using mkdir /home/cyberithub/backup command as shown below.

cyberithub@ubuntu:~$ mkdir /home/cyberithub/backup

Once directory is created, let's initialized to create a restic repo using restic init --repo /home/cyberithub/backup command as shown below. It would prompt you to set repository password which will be used to encrypt and access the repository. Then confirm the same password again to finally create restic repository.

cyberithub@ubuntu:~$ restic init --repo /home/cyberithub/backup/
enter password for new repository:
enter password again:
created restic repository caa6a00c7b at /home/cyberithub/backup/

Please note that knowledge of your password is required to access
the repository. Losing your password means that your data is
irrecoverably lost.

If you switch to backup directory and check the contents you should see something like below.

cyberithub@ubuntu:~$ cd /home/cyberithub/backup/
cyberithub@ubuntu:~/backup$ ls
config data index keys locks snapshots

Let's understand more about above file and directories created:-

  • config: It is a non readable file that contains repository configuration details
  • data : It is a directory to store encrypted data blocks of your backups
  • index: It is a directory which stores indices for efficient lookups
  • keys: It is a directory which stores encrypted key data

 

Step 6: Backup data

Now that repo is initialized and ready to store backup snapshots, let's take a backup of data directory available in /home/cyberithub location using restic -r /home/cyberithub/backup/ backup /home/cyberithub/data/ command as shown below. This command would create backup of directory /home/cyberithub/data and store it in /home/cyberithub/backup repo.

cyberithub@ubuntu:~$ restic -r /home/cyberithub/backup/ backup /home/cyberithub/data/
enter password for repository:
repository caa6a00c opened (version 2, compression level auto)
created new cache in /home/cyberithub/.cache/restic
no parent snapshot found, will read all files
[0:00] 0 index files loaded

Files: 3 new, 0 changed, 0 unmodified
Dirs: 3 new, 0 changed, 0 unmodified
Added to the repository: 46.017 MiB (46.019 MiB stored)

processed 3 files, 46.013 MiB in 0:05
snapshot cc227aad saved

 

Step 7: List all snapshots

To list all snapshots stored in restic repo /home/cyberithub/backup, use restic -r /home/cyberithub/backup command as shown below. This would prompt you to enter repo password to decrypt and show snapshots data.

cyberithub@ubuntu:~$ restic -r /home/cyberithub/backup/ snapshots
enter password for repository:
repository caa6a00c opened (version 2, compression level auto)
ID        Time                 Host      Tags     Paths                  Size
----------------------------------------------------------------------------------------
cc227aad  2024-11-22 11:08:58  ubuntu            /home/cyberithub/data  46.013 MiB
----------------------------------------------------------------------------------------
1 snapshots

 

Step 8: Restore data from snapshot

You can also restore data from backup taken. For that you have to specify a target directory to restore the data. For example, if we have to restore data from /home/cyberithub/backup into the target directory /home/cyberithub/data directory then we have to use restic -r /home/cyberithub/backup restore latest --target /home/cyberithub/data command as shown below.

cyberithub@ubuntu:~$ restic -r /home/cyberithub/backup restore latest --target /home/cyberithub/data
enter password for repository:
repository caa6a00c opened (version 2, compression level auto)
[0:00] 100.00% 1 / 1 index files loaded
restoring snapshot cc227aad of [/home/cyberithub/data] at 2024-11-22 11:08:58.356834662 +0530 IST by cyberithub@ubuntu to /home/cyberithub/data
Summary: Restored 6 files/dirs (46.013 MiB) in 0:01

 

Step 9: Delete a snapshot

If you would like to delete a backup snapshot from restic repo then you can do that using snapshot id. To get snapshot id, you can list all snapshots stored in a repo as explained earlier and then take the snapshot id to delete that particular snapshot. For example, here we are deleting snapshot with id cc227aad using restic -r /home/cyberithub/backup forget cc227aad command as shown below.

cyberithub@ubuntu:~$ restic -r /home/cyberithub/backup forget cc227aad
enter password for repository:
repository caa6a00c opened (version 2, compression level auto)
[0:00] 100.00% 1 / 1 files deleted

 

Step 10: Uninstall Restic

Once you are done using restic, you can choose to uninstall it from your system using any of the below methods depending on how you installed it.

a) Using apt or apt-get

If you installed restic from default ubuntu repo then to uninstall run sudo apt remove restic command as shown below. If you also want to remove all dependencies installed with restic package which are not required by system anymore then use --auto-remove option with below command.

cyberithub@ubuntu:~$ sudo apt remove restic
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
restic
0 upgraded, 0 newly installed, 1 to remove and 77 not upgraded.
After this operation, 20.3 MB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 242219 files and directories currently installed.)
Removing restic (0.12.1-2ubuntu0.3) ...
Processing triggers for man-db (2.10.2-1) ...

If you are looking to remove restic package along with all its associated files and configuration then instead of removing, you can use sudo apt purge restic command to get rid of all the left over files and configurations along with the main package. You can also use --auto-remove option with below command to get rid of all the dependencies installed with restic which are not required by system anymore.

cyberithub@ubuntu:~$ sudo apt purge restic
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following packages will be REMOVED:
restic*
0 upgraded, 0 newly installed, 1 to remove and 64 not upgraded.
After this operation, 20.3 MB disk space will be freed.
Do you want to continue? [Y/n] Y
(Reading database ... 242221 files and directories currently installed.)
Removing restic (0.12.1-2ubuntu0.3) ...
Processing triggers for man-db (2.10.2-1) ...

b) Remove binary tool

If you installed the binary tool then to remove the package, you just have to remove binary package using sudo rm -rf /usr/local/bin/restic command as shown below.

cyberithub@ubuntu:~$ sudo rm -rf /usr/local/bin/restic
[sudo] password for cyberithub:

Leave a Comment