How to Use Rsync to Create a Backup on Ubuntu 20.04
There are many ways to make a backup on Ubuntu. Recently, we looked at a powerful but complex tool – Bakula. Today we will learn how to make a backup using rsync.
Step 1 – Installing rsync
Ubuntu 20.04 already contains the rsync package installed. To check this and find out the version, use the command:
If the package is not installed for some reason, use the command:
To launch rsync as a service in Ubuntu 20.04, create the /etc/rsyncd.conf file and copy /lib/systemd/system/rsync.service to /etc/systemd/system/rsync.service.
sudo cp /lib/systemd/system/rsync.service /etc/systemd/system/rsync.service
Now restart the service.
Step 2 – Configuring the data source server
First, add these lines to the rsync configuration file /etc/rsyncd.conf. Change the 'path' parameter to the path to the source files to back up. For ‘uid’ and ‘gid’, use the existing username and group with read permissions in the backup source folders.
# Global configuration of the rsync service
pid file = /var/run/rsyncd.pid
# Username and group for working with backups
uid = backup-user
gid = backup-user
# Don't allow to modify the source files
read only = yes
# Data source information
[data]
path = /path/to/backup
list = yes
auth users = backup-user
secrets file = /etc/rsyncd.passwd
The data in the ‘auth users’ parameter and the /etc/rsyncd.passwd file is used for authorization between rsync on different computers. Add a line there, like this:
backup-user:test-pass
Change the permissions for the rsyncd.passwd file.
Restart the service to apply the changes.
Step 3 – Running the backup
Create the /etc/rsyncd.passwd file on the receiving server where the backups will be stored. Enter the same password as on the source computer, but without the user name, set 600 permissions for it.
test-pass # Save and close file
sudo chmod 0600 /etc/rsyncd.passwd
To perform a backup run the command:
Replace source-server-ip with the IP address of the first server, and ‘/destination/path/’ with the path for storing backups.
For regular backups, just add the task to the end of the /etc/crontab file.