27.06.2025

How to Use Rsync for Backup Creation on CentOS 8

In this tutorial, we will use Rsync to create a backup on CentOS 8. Backups will be sent to the second server and stored there. So we need 2 working and configured CentOS 8 servers. So we need 2 working and configured CentOS 8 servers. We will cover the installation of Rsync, setup of SSH keys for secure communication, and how to automate the backup process using cron jobs for regular data synchronization.

Installing Rsync packages

Let's check if the necessary Rsync packages are installed and install them if not.

dnf install rsync rsync-daemon

Start the Rsync daemon and enable its automatic starting.

systemctl enable --now rsyncd

Check if auto start is enabled and working.

systemctl status rsyncd
● rsyncd.service - fast remote file copy program daemon
Loaded: loaded (/usr/lib/systemd/system/rsyncd.service; enabled; vendor preset: disabled)
Active: active (running) since Sat 2020-12-19 13:18:16 UTC; 6s ago
...

Check if the Rsync service is listening on the network port.

netstat -tulpn | grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN 55746/rsync
tcp6 0 0 :::873 :::* LISTEN 55746/rsync

Configuring the backup source server

Open the configuration file:

nano /etc/rsyncd.conf

Insert following lines in it:

# Rsync daemon global config
pid file = /var/run/rsyncd.pid
# User name and group for reading source files
uid = rsync-user
gid = rsync-user
# Do not allow to modify the source files
read only = yes
# Data Source Configuration
[data]
path = /home/user
list = yes
auth users = rsync-user
secrets file = /etc/secret.passwd

Create a file with credentials for authorization on this machine.

nano /etc/secret.passwd

Enter username and password in it.

rsync-user:rsync-pass

Change the file permissions to read-only by the root user.

chmod 0600 /etc/secret.passwd

Restart the Rsync daemon.

systemctl restart rsyncd

You also need to create the user that was specified in the configuration and file with credentials.

useradd rsync-user

Сonfiguring the receiving Rsync backup server

Create a file for the password.

nano /etc/secret.passwd

Enter the password for the Rsync user on the source server.

rsync-pass

Change its permissions here as well.

chmod 0600 /etc/secret.passwd

Running a backup

Create a folder for backup.

mkdir /opt/backup

The following command will start the backup. Replace source-server-ip with the source server's IP address.

rsync -a --password-file=/etc/secret.passwd rsync-user@source-server-ip::data /opt/backup/$(date +%Y-%m-%d)/

To set up periodic backups, you can add a cron task with the last command in it.