Without a doubt, cloud services have saved us a lot of time and effort. We can back up essential files on the cloud and access them whenever we want. However, backing up the full operating system is typically not possible with cloud services such as Gdrive, OneDrive, etc.
Furthermore, an operating system with a large number of apps can be larger than 100GB in size. How about a Linux server? A production server regularly stores, updates, moves and deletes files.
When administering a server, the administrator must be prepared for any calamity, such as a server crash that may destroy data, inadvertently deleting vital configuration files, or, in the worst-case scenario, the server being hacked.
Uploading system files to the server will take time, and the administrator will need to sign up for a subscription plan with enough storage for the backup.
Google Drive, Gdrive, Dropbox, and other similar services are not intended to be used for systematically keeping backups. Even if you successfully package your operating system and upload it to the server, manually restoring that backup would be difficult.
In this article, I’ll go over the best Linux backup software for PCs and servers.
This is an important article if you own a Linux server. In the previous article, I discussed how to secure a Linux server. It demonstrates a variety of methods in which your servers might be exploited. I encourage that you read the article if you haven’t already. That article will strengthen the security of your Linux server.
If your server is compromised due to a zero-day vulnerability or human error, ensure you have working backups ready to be restored to a new or the same server. Hackers frequently do not prioritize erasing your server; instead, they infect it with malicious code in order to constantly monitor it, attack other servers, and steal as much data as possible.
Backups enable you to restore your server’s functionality. As a result, it is critical to backup your server on a regular basis, ensure that files are not corrupted, and, most importantly, those backup files are stored in a secure location.
Best Linux Backup Software for desktops and servers
Users can operate their PCs graphically using Linux desktops or workstations. If you have a desktop computer, there is some nice backup software for Linux. I’ve compiled a list of a few of these applications because they are simple to install and use while providing the maximum number of functions that a typical user wants.
When it comes to backup software on a Linux desktop, I prefer backup software that allows automatic backup (hourly, daily, weekly, and monthly, for example), automatic sync backups to the cloud or local storage, and deletion of backups older than a specific amount of time.
Old backup files do not serve the objective of recovering the most recent system. As a result, it is critical to delete old files to make room for new ones.
If you don’t have a fast Internet connection to sync huge backup files to the cloud storage, I recommend keeping backups on an external hard drive or SSD.
1. Timeshift (For desktops)
Timeshift is a well-known piece of backup software for Linux. Many major Linux distributions, like Linux Mint and Manjaro, come with it pre-installed. However, if your distribution does not include timeshift, 99.9% of it is available in the distro repository. So, use your package manager to fetch it from the repository and install it on your machine.
There’s a reason why Timeshift is included in popular distros. It is simple to use and can be configured in less than a minute. In addition, it has the ability to create system snapshots at any time.
The setup wizard will arrange everything required for your initial backup. For example, it will ask where you want to save snapshots, how long you want backups to run, how many snapshots you want to retain, and which directories or partitions you want to backup.
It also includes support for Btrfs, a modern copy-on-write filesystem. When timeshift is installed, it launches the setup wizard and prompts you to choose a snapshot type, RSYNC, or Btrfs. Both sorts of snapshots have advantages and limitations.
To put it simply, when creating snapshots, the Btrfs system does not copy or destroy files. Instead, it creates a snapshot with 0 sizes. When a user adds files to the system, the data in the files is stored in blocks, and the files in snapshots point to the data blocks. As a result, rather than copying data, it builds links that point to data blocks.
If your filesystem is Btrfs, use Btrfs; otherwise, use Rsync.
It is faster than Rsync, and there is no chance of data loss when building a backup. However, the Btrfs file system has the disadvantage of not allowing backups to be saved on external storage. This means that if the current drive fails, all backups will be lost as well.
Rsync, on the other hand, does not have this limitation. Rsync will copy files to produce snapshots, which can then be stored on external storage. In the event that your system disc fails, the data stored in snapshots will be safe.
Though Timeshift can save snapshots on external hard drives (through Rrsync), it cannot automatically transfer them to cloud storage services such as Google Cloud or Amazon S3.
As I mentioned above, Timeshift is available in almost all distros repositories. So use your distros package manager to install timeshift in your distribution.
sudo apt install timeshift
sudo dnf install timeshift
Red Hat or CentOS
sudo yum install timeshift
2. Cloudberry (For desktops & enterprise servers)
Cloudberry is a full-service backup solution for both desktops and businesses. It includes all of the features required to create system backups.
It has a tonne of fantastic features and an easy-to-use interface. For example, cloudberry can automatically perform backup plans, erase old backups, and include or omit files from backup plans. Most notably, Cloudberry can backup to all major cloud services, including AWS, Microsoft Azure, Google Cloud, Backblaze, Wasabi, NAS (Network Attached Storage), HP Cloud, OpenStack, SFTP, local storage, external hard discs, network shares, and others.
Cloudberry can encrypt backup files and compress them for easy network transport to boost the security of your backups.
Users can protect the console with a master password to prevent unwanted access to the Cloudberry installation.
Please read the Cloudberry review I published a while ago for a more in-depth look at Cloudberry.
After installation, you can activate the free version or test the premium version. The free version is intended for personal use only and does not allow automatic backups.
Purchase the Personal edition, Server edition, or Ultimate edition for additional features such as compression and encryption. The personal edition is $29.99 per PC (one-time).
On servers, I recommend using Cloudberry. It only costs $79.99 per server, which is a small price to pay for such a useful tool. For personal use, Timeshift or the free edition of Cloudberry can be used; both offer similar functions for free.
Simply download Cloudberry from its official website and follow the on-screen instructions.
3. Bacula (For enterprise)
Bacula is a well-known backup solution that specializes in enterprise-level backup solutions. It is available in all major Linux distribution repositories, making installation a breeze. To install, simply use your distro’s package manager.
Bacula is a little tough to set up due to its focus on servers. Although once installed and configured, it is simple to manage its settings via a graphical interface or command line.
Bacula can be used to create automatic backups on a remote or local server, manage backups via CLI or GUI, add volume pools, add storage blocks, include or exclude data, and perform a variety of other tasks.
As previously stated, installing and configuring Bacula can be a time-consuming process. I recall the first time I used Bacula on Webmin. Webmin is a well-known web control panel. Bacula comes pre-installed with Webmin. Therefore, it is simpler to use Bacula with Webmin than it is to set up its own web panel or via command-line.
If you do not want to install Webmin, then use the command-line interface. Install bacula from the repositories, set up its database, edit configuration files that exist at
/etc/bacula/bacula-dir.conf /etc/bacula/bacula-sd.conf /etc/bacula/bacula-fd.conf
Or, install Webmin and set up bacula.
sudo apt edit-sources
Add Webmin repository.
deb http://download.webmin.com/download/repository sarge contrib
Add GPG key.
wget http://www.webmin.com/jcameron-key.asc && sudo apt-key add jcameron-key.asc
Update and install Webmin.
sudo apt update && sudo apt install webmin -y
The installation will take a few seconds. Once installed, Webmin is available through port 10000. If port 10000 is not open on your server, open it using firewalls such as UFW or iptable.
Now visit the server_ip:10000 and authenticate yourself using server credentials (MySQL username & password).
Go to Tools > Perl Modules > Suggested modules. Install all the suggested perl modules.
Now go to System > Bacula Backup System. Run the configuration set up and enter database credentials and Save. You should now have Bacula settings.
From here, you can easily manage your backup system. But, again, bacula is not designed for desktop users, so it isn’t easy to set up and use for desktop users.
4. Rsync (For desktops & servers)
Last but not least, there’s Rsync. Rsync is the most basic yet powerful backup application for Unix-like systems. Rsync is either installed or available in the repositories on most Linux distributions.
Almost every server user uses rsync on a daily basis to transfer files within the server or between remote workstations. Its simple Command syntax allows even inexperienced users to run it.
rsync -av --delete /backup/ /destination/
The rsync command shown above will synchronize two directories. It will remove any existing files in the destination directory and copy all files in the backup directory.
Think of rsync as a file manager. It can do anything from a command line that a file manager can. One can set up cron jobs to schedule backups using rsync, use
--max-size options to exclude files by size,
--compress option to compress files,
--include options to filter files by specific patterns, and a lot more options that require a separate article.
For all available options, enter rsync in the command line.
We don’t have to worry about destination support with Rsync. If your destination is online, rsync can connect to it and transfer data to it. It could be an AWS instance, Google Cloud, or another type of cloud storage.
To transfer backup files to remote storage, we can use ssh.
rsync -avz backup/ [email protected]_address:/home/destination
I have written an entire article on how to use rsync. For more information, please head over to this article.
Rsync GUI Grsync
Grsync is a simple interface to use Rsync. Just install it from the distro repository and check it out.
There are a plethora of other Linux backup applications available. I chose these four backup applications because they meet the needs of a wide range of users. Install Timeshift, Cloudberry, or Rsync if you’re a desktop user, and Cloudberry premium, Bacula, and Rsync if you’re a server user.
Rsync is the most customizable option on the list. If you are familiar with bash programming, you can have rsync perform anything on the filesystem and send the output to any remote server or save it locally.
Please let me know if you have any better backup alternatives in the comments section below. Do you require assistance with installation or setup? Please let me know in the comments or join our Discord server.