No doubt cloud services have saved us a lot of trouble. We can back up important files in cloud storage and download them later whenever needed. But backing up the entire operating system is not normally possible with cloud services like Gdrive, OneDrive, etc.
Also, an operating system loaded with a ton of applications can be more than 100GB in size. Or what about a Linux server? A production server stores, update, move, and delete files constantly.
When running a server, the administrator will have to be ready for any disaster such as server crash that may corrupt data, accidentally deleting important configuration files, or in the worst scenario, the server may get hacked.
Uploading system files to the server will not only consume time but will require the admin to sign up for a paid plan that provides enough storage for the backup.
Google drive, Gdrive, Dropbox, etc. are not designed for systematically storing backups. So even if you successfully package your operating system and uploads it to the server, restoring that backup manually will not be easy.
In this article, I will review Best Linux backup software desktops and servers.
If you own a Linux server, this is an important article for you. In the last article, I covered steps to secure a Linux server. It shows a number of ways your servers can be compromised. If you have not read that article, I recommend you read it. That article will harden your Linux server security.
In case your server is compromised exploiting any zero-day vulnerability, or through user’s error, you will want to make sure you’ve working backups ready to be restored to a new or the same server. Most of the time hackers do not prioritize deleting your server, they infect your server with malicious code to constantly monitor your server and steal as much data as possible.
Backups allow you to restore your server back to functioning again. So it’s important to regularly backup your server, make sure files are not corrupted, and most importantly backup files are stored at a secure location.
Best Linux Backup Software for desktops and servers
Linux desktops or workstations let users control their computers graphically. If you are a desktop user, there are pretty good backup software for Linux. I have compiled a list of a few of these softwares because I think these applications are easy to install, use, and support the maximum number of features that a normal user requires.
When it comes to using backup software on a Linux desktop, I prioritize backup software that supports automatic backup (hourly, daily, weekly, and monthly, etc.), automatic sync backups to the cloud or local storage, and delete backups that are older than a certain period of time.
Old backup files do not solve the purpose of restoring the up-to-date system. So it’s important to delete old files to save space for new ones.
If you do not have a fast Internet connection to sync large backup files to the cloud storage, I recommend using an external hard drive or SSD for storing backups.
1. Timeshift (For desktops)
Timeshift is one of the most popular backup software for Linux. It comes pre-installed with many popular Linux distributions such as Linux Mint and Manjaro. If your distribution does not have timeshift installed, 99.9% it is available in the distro repository. So use your package manager to pull it from the repo into the system.
Timeshift is included in popular distros for a reason. It is user-friendly and can set up backup configuration in less than a minute. It can create system snapshots at any moment.
Set up wizard will configure everything needed to run your first backup. It will ask where to store snapshots, the time period to run backups, how many snapshots to keep, and directories or partitions to backup.
It also supports Btrfs, a modern copy-on-write filesystem out of the box. Upon installation, timeshift runs the setup wizard and asks to select snapshot type, RSYNC, or Btrfs. Both snapshot types have their own advantages and disadvantages.
In simple terms, the Btrfs system does not copy or delete files when creating snapshots. It initializes snapshot with 0 size. As the user adds files to the system, files data is stored in blocks, and files in snapshots point to the data blocks. So it does not copy data but creates links that point to data blocks.
If your filesystem is Btrfs, then select Btrfs otherwise go with Rsync.
It is faster than Rsync, with no risk of data loss while creating a backup. A disadvantage of Btrfs type is that it does not allow to save backups on external drives. It means if the current drive fails, all backups will also be lost.
It is not the case with Rsync. Rsync will copy files to create snapshots and can store snapshots on external storage. In case your system disk fails, data backed up in snapshots will remain safe.
Though, Timeshift allows to save snapshots on external hard drives (with Rrsync) but can not transfer them automatically on cloud storage such as Google Cloud or Amazon S3, etc.
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 complete backup solution for both desktops and enterprises. It has all the features that one needs to create system backups.
It is loaded with a ton of great features with easy to use interface. Cloudberry can run backup plans automatically, delete old backups, include or exclude files from backup plan, and most importantly, Cloudberry can upload backups to all major cloud services such AWS, Microsoft Azure, Google Cloud, Backblaze, Wasabi, NAS (Network Attached Storage), HP Cloud, OpenStack, SFTP, local storage, external hard disks, network shares, and more.
To increase the security of your backups, Cloudberry can also encrypt backup files and compress them for easy transfer over network.
To prevent any unauthorized access of Cloudberry installation, users can protect console with a master password.
For complete review of Cloudberry, please read review I published a while ago.
Once installed, you can activate the free version or trial of the paid version. The free version is designed for personal use and supports automatic backups.
For more features such as compression and encryption, buy Personal edition, Server edition, and Ultimate edition. Personal edition costs $29.99 per computer (one-time).
I recommend using Cloudberry on servers. It only costs $79.99/server and it’s worth spending for such a useful utility. For personal use, one can use Timeshift or the free version of Cloudberry, they both provide similar features for free.
Just download Cloudberry from the official website and follow the step-by-step instructions.
3. Bacula (For enterprise)
Bacula is a popular backup solution focused on enterprise-level backup solutions. It is available in all major Linux distribution repositories so installing it is pretty easy. Just use the package manager of your distro to install.
Being focused on servers, bacula is a little bit difficult to set up. Although once installed and set up, one can easily manage its settings either using a graphical interface or command line.
Bacula can be used to create automatic backups on a remote server or local server, manage backups using CLI or GUI, add volume pools, add storage blocks, include or exclude files, and many more.
As I mentioned installing and setting up bacula can be a little tedious job. I remember the first time using Bacula on Webmin. Webmin is a popular web control panel. Bacula is packaged with Webmin. Using Bacula with Webmin is easier than setting up its own web panel or through 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. Again bacula is not designed for desktop users so for desktop users, it is very difficult to set up and use.
4. Rsync (For desktops & servers)
Last but not least is Rsync. Rsync is the simplest yet powerful backup utility available for Unix-like systems. Rsync is either installed on most Linux distros or available in the repos.
Almost of server users use rsync on daily basis for transferring files within the server or between remote machines. Its easy-to-use Command syntax lets even new users run it easily.
rsync -av --delete /backup/ /destination/
The above basic rsync command will synchronize two directories. It will delete existing files from the destination directory and copy all files from 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, just enter rsync in the command-line.
With Rsync, we do not have to worry about destination support. It can AWS instance, Google Cloud, or any other cloud storage. If your destination is available online, rsync can connect and transfer data to the destination.
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 many more Linux backup software available. I decided to put these four because these backup software fulfills the needs of all sorts of users. If you are a desktop user, install Timeshift, Cloudberry, or Rsync, and for server users, install Cloudberry premium, Bacula, and Rsync.
Rsync is much more customizable than any other on the list. If you know bash scripting, you can make rsync do anything on the filesystem and transfer the output to any remote server or save it locally.
If you have any better backup solutions, let me know in the comment section below. Need help regarding the installation or setup, let me know in the comment section or join our Discord server.