There are many free backup software. I decided to make a list of the 12 most popular and functional ones, so that it would be convenient to choose the right one. All programs are tested and commented personally by myself.
Clonezilla and Rescuezilla
Clonezilla is an analogue of commercial disk imaging products and systems for backup or transfer to other hardware, such as Acronis True Image, Norton Ghost, etc.
It has a console interface for true linuxoids and gento arch lovers, while Rescuezilla has a more human GUI for those who are used to clicking with the mouse.
I myself have repeatedly used Clonezilla to transfer the system from hardware to a virtual machine or between different hypervisors. The product is good and well known, I recommend it if you are not already familiar with it.
I think that the next time I need it, I will prefer the GUI of the console. Also, one of the features of Rescuezilla is that it can mount and access Clonezilla backup files very easily.
Veeam Agent for Windows or Linux Free
With it, you can backup the entire computer, as well as individual drives and folders. After installation, it will create a boot disk, with which you can restore the system and upload a backup if everything dies completely. Supports storing backups locally, on smb balls, on usb devices. When the latter is connected, it can automatically launch a backup.
I personally backup my laptop with it. I’ve already helped out many times, so I recommend it. Traditionally, software from Veeam works efficiently and simply. It doesn’t take long to figure out the settings. So there is not much to add. Take and try. Works on both Windows and Linux.
If you love rsync as much as I do, and at the same time want to backup windows machines with it, then DeltaCopy can help you with this. This program has become a real discovery for me. Previously, I already wrote about rsync under Windows. There I described the old program, about which there are practically no references on the Internet. No program website, no updates. She is abandoned at the moment.
DeltaCopy is quite alive. There is a site where you can download the latest version of the distribution, there are sources. And in general, I liked this program for its simplicity and functionality. It consists of two independent parts – client and server.
You will need a client if you want to schedule data from another Rsync server. I usually don’t need it. Servers are most often under Linux and it is from them that you want to take data from Windows machines. For this, the server part is used. She has a minimum of settings and everything through the program interface.
In order to start fetching data from Windows via Rsync, you need to set up a directory with a file source in the server part. If you need built-in authorization, add a user and password. DeltaCopy will generate the simplest rsync config:
use chroot = false strict modes = false [Backup] path = /cygdrive/c/tmp comment = Backup Drive read only = true auth users = zerox secrets file = /cygdrive/c/DeltaCopy/secrets/Backup.secret
Next, run DeltaCopy as a service and don’t forget to configure the firewall. We need to open the standard rsync port – tcp 873. We move to the Linux server and take the data from there:
rsync -avz [email protected]::Backup /mnt/backup
And that’s it. Works clearly and simply. I tried, I will now use DeltaCopy for rsync on Windows.
First of all, this is an open source product – https://github.com/kopia/kopia. Supports all popular systems (Win, Lin, Mac). There are both GUI and CLI. And this is very cool, as it expands the scope to infinity. If you want to automate with scripts, if you don’t know how – put the GUI under Windows and poke the mouse.
Supports major cloud providers (S3, GCS, Azure) as well as webdav, rclone, local storage and sftp as storage for backups. I especially liked the last one. You can take any server with ssh and organize a repository for backups there. It is also possible to set up your own Repository Server, which will act as a proxy to the main repository, which will allow you to more flexibly manage rights and access.
I have personally tested the following backup model. I took a linux server as a repository, set up access to ssh on it using keys. I took Windows, installed Kopia from the GUI, connected the repository via sftp and configured the creation of backups of a certain directory to this repository.
Then I took another Linux server. Installed Kopia on it (just downloaded the binary) and connected the same repository. I configured it to backup data from this server. As a result, I have 2 different servers that back up data into a single repository. Both servers have access to each other’s backups.
Backups are encrypted, settings are stored in json. It is possible to configure the schedule, exclusions, storage time for snapshots. In general, everything you need to build a distributed backup system for heterogeneous systems. And all this is free. It seems to work well. I really liked it. First of all, the possibilities of customization and application in many different scenarios.
The author wrote a whole section on his website on the topic of why he started developing Burp, if there is such a wonderful Bacula that he himself used. In short, Bakula is too complex for simple tasks. He decided to write something similar, but much simpler.
Burp is written in C using librsync (which means it syncs files quickly) and has a client-server architecture. The server is installed on linux, there are clients for linux, windows, mac. It has been actively developed for more than 10 years.
Burp supports backup repositories, deduplication, encryption, compression, scheduling, alerts, and more. In general, a complete backup system. Able to issue its status in json, can be deployed using ansible, there are ready-made roles. So everything is in order with the youth, despite the fact that the project is quite old.
Curious backup system. First of all, I liked the fact that it was made on the basis of rsync, plus the files are stored in open form. You can climb backups with the same find if you wish, if they are not encrypted.
Syncthing works like torrent clients. The data of all clients who wish to synchronize some directory are synchronized in real time. There are clients for all popular systems, including smartphones.
Works like this. Put the client on some system and add a folder for synchronization there. The client automatically contacts public centralized relays or announcing servers. You can raise your own. The client is assigned a unique id.
Further, the same client is placed on another system. He also registers in the general network and receives his id. Further, on the first client, you add the second client by id to the trusted systems and share the folder for it. On the second client, you see that you have been added and add this device to your trusted ones. You also receive a directory for synchronization from the first client.
And that’s it! After that, two-way synchronization of this directory begins. Here you can add a few more systems. This way they will all sync the same directory. If you don’t want to connect via public relays, you can raise your own. It’s easy to set up connections by ip.
I liked the system, put it on Windows. Set up and figured out quickly. An interesting principle of synchronization. I don’t know how reliable and fast it will work. I suspect that with a large number of files there may be problems, as with all programs of this kind. 500 thousand files to upload and everything will hang or there will be a bunch of conflicts. But for not very large volumes and the number of files, in theory, it should work fine. You can share your files between devices in this way.
Borgbackup or Borg
What specifically attracted Borg and why drew attention to it:
Easy installation and configuration. In fact, it’s just one binary. Nothing additional, such as a database, is not necessary. Works on all Linux systems, MacOS. There is no Windows support.
Efficient and honest deduplication, and compression to the heap with different algorithms.
Works over ssh. Accordingly, there is no need to configure anything on the hosts, install an agent, etc. Ssh is most often found everywhere.
Flexible in terms of automation using scripts. Great for crutches and bike lovers like me.
I myself still backup everything using rsync and self-written binding in the form of bash. Implemented, everything I usually need – full, incremental backups, monitoring.
I want to get rid of my bikes, but I can’t find something that suits me 100%. I looked closely at Borg, tried it. In general, everything is cool and comfortable. Deduplication works great, diff backups are very fast.
But one feature of all binary backups with deduplication, like borg, pops up. Let’s say you have a large data archive, let’s say 1-2 TB with 500,000 files. Just to make a listing of files in such a backup will take a very long time. If I have a normal data backup via rsync, I do it almost instantly.
And one more minus specifically Borg. It preserves file permissions when you make a full backup. But then, if you restore a separate file, its rights will not be restored, since they are stored conditionally in a full backup. To restore the rights of files, you need to do a full restore. Somewhere it’s not important, but somewhere it will create a lot of inconvenience.
My resume is this. Borg is a great console backup tool with fair deduplication and compression. Saves disk space very well. But it has the disadvantages described above. If they are not critical for you, you can use it. I ended up deciding not to use it. I’ll stick with rsync for now.
If you are really interested in Borg, then you can see how it works here – https://www.borgbackup.org/demo.html You will immediately get an almost complete picture of its work. I started by watching all 4 demo videos
The main features of BackupPC are as follows:
Management through the built-in web interface.
Cross-platform, written in perl.
Support for deduplication and compression.
Works on top of ssh, including using rsync, no agents need to be installed.
Able to work on smb.
It uses the mechanism of hard links (hardlinks).
You can install it on Centos and try it from epel:
dnf install epel-release dnf config-manager --set-enabled powertools dnf install backuppc
Together with backuppc, apache will arrive with a ready-made config. It will only be necessary to add a user for authorization. Detailed installation instructions are here. I put on it. And then I got into the documentation and got a little crazy. I thought it was a small utility, but in fact BackupPC is a fairly large and mature backup system that needs to be dealt with.
Not to say that there is something complicated. Plus, everything is done through the web interface. You need to scatter the key over the ssh hosts, which BackupPC will use to go to clients. Then add hosts to the system, set up tasks for backup and then put them in the scheduler.
In general, everything looks very interesting and useful. Plus, there are quite well-known Linux utilities under the hood. That is, no internal magic. As I understand it, this system is suitable for those who do not want to mess with Bacula / Bareos, but have already grown from self-written scripts and need centralization and automation.
UrBackup is a cross-platform backup system managed through a built-in web interface. Moreover, that clients, that the server can be raised on different systems, including Windows and Linux.
For the test, I raised the server in Docker on Centos 8, and backed up the system using the Windows client. UrBackup allows you to backup both the entire system and individual directories and files.
This is a complete backup system. It can restrict access by user and integrate with LDAP, send out task alerts, make full and incremental copies, support scheduling, and much more. That is, it closes all the basic questions on the backup.
Trying out the system is easy. As I said, I launched the server in docker and immediately went through the web interface. Launch command:
docker run -d --name urbackup-server-1 -v /mnt/backups:/backups -v /mnt/database:/var/urbackup -p 55413-55415:55413-55415 -p 35623:35623/udp uroni/urbackup-server
Management interface at http://10.20.1.16:55414. Next, install the client on Windows using a simple installer and quickly set up what to back up in the same place. Then you return to the web interface of the server and add the computer where the client was installed by ip address.
And that’s it, the backup starts immediately with the default server settings. You can check them out and change them. The backup frequency, storage policy and creation of full and incremental backups and much more are configured.
There is a Russian language both in the client and in the server. In terms of meaning, everything is translated normally, but in some places the interface is crooked: there are not enough spaces or the text is scattered. The English version looks neater.
I really liked the system, first of all, by its functionality and ease of setup. It is not necessary to red-eye especially in the console. All basic needs can be covered by the web interface. I can’t say anything about reliability and speed of work. But judging by how often UrBackup is recommended, he’s doing just fine with it.
Most similar to Kopia and BackupPC. But at first glance, it surpasses them in terms of functionality, convenience and simplicity. So I recommend.
Butterfly Backup is a small console wrapper for rsync written in python. Its idea is that it uses the main advantage of rsync – the speed of comparing and copying information. It also adds some flexibility that rsync does not natively have. That is, it expands its functionality.
Butterfly Backup eliminates the need to write your own bash wrapper around rsync to organize incremental or differential backups. It also simplifies the restoration and viewing of the contents of backups. For convenience, you can prepare a ready-made config.
Supported backups: Full, Incremental, Differential, Mirror.
Using a central server to store backups of different clients.
Detailed view of the contents of individual backups.
Backup of the entire system, as well as its restoration to another hardware or VM.
The principle of removing data is agent-less, using the rsync or ssh protocol.
BB needs Python3 to work. Next, just copy the repository and run the installation script:
git clone https://github.com/MatteoGuadrini/Butterfly-Backup.git cd Butterfly-Backup sudo python3 setup.py
After that, we copy the rsa keys that we previously created to the remote host in order to have access to it:
bb config --deploy host1
Next, run a simple backup:
bb backup --computer host1 --destination /mnt/backup --data System --type Unix
bb has presets for typical backups of three types of systems – Unix, Windows, MacOS. If you specify the data type after the data key and then the system type, then everything that belongs to this type will be backed up. In my example, these are system directories.
In the documentation you can see all the main features and keys for backup and recovery.
There is a very old and well-known backup program for Windows systems – Cobian Backup. It is completely free and highly functional for zero cost. I checked its work on Windows 11. Despite the fact that the program is old, it works fine even on the latest version of Windows. It is only necessary to install .Net Framework 3.5.
The main features of the program:
Able to work as a service, uses a schedule.
Uses shadow copy to create backups.
Supports various backup schemes: full, incremental, differential.
Able to compress archives using zip or 7zip, as well as encrypt them.
Can run scripts before or after a backup.
Supports command line control.
Normal Russian language in the interface.
Detailed task execution log.
In general, for a free program, it is very convenient and functional. Backup can only be done locally or on network drives. And also on ftp. I don’t know who else uses ftp these days. However, there is a possibility. Compared to the same free Veeam Agent for Microsoft Windows FREE, Cobian Backup is more functional.
Program settings are simple and trivial. You won’t have to figure it out much, especially to read some kind of documentation (who even reads it?). After installation, immediately set up a backup and run it.
I want to recommend you a very convenient and functional file synchronization program – FreeFileSync. In fact, this is an analogue of the well-known paid program GoodSync, which many people know, but it is paid. FreeFileSync works in much the same way, only completely free, the source code is open.
How FreeFileSync works is as follows. Select one directory on the left side of the program window, another on the right side and synchronize them. You can set synchronization rules and interval. One of the synchronization parties can be not only a local or network directory, but the cloud service google drive, sftp and ftp. That is, you can send data from Windows servers to Linux via sftp.
The program supports console mode, exceptions, running as a service, scheduled autorun, and much more. This is a complete, multifunctional product with regular updates. Works under Windows, Linux, MacOS.
If you think that I missed some useful free backup program, and it deserves to enter the TOP, share it in the comments. I must say right away that there is no point in writing about Bacula and Bareos. I know about them, but I don’t use them. I personally don’t like it. Set up and use them.