31.01.2025

Como usar o Rsync para criar um backup no Ubuntu 20.04

Há muitas maneiras de fazer um backup no Ubuntu. Recentemente, vimos uma ferramenta poderosa, mas complexa - Bakula. Hoje, aprenderemos a fazer um backup usando o rsync.

Passo 1 - Instalando o rsync

O Ubuntu 20.04 já contém o pacote rsync instalado. Para verificar isso e descobrir a versão, use o comando:

sudo rsync --version

Se o pacote não estiver instalado por algum motivo, use o comando:

sudo apt install rsync

Para iniciar o rsync como um serviço no Ubuntu 20.04, crie o arquivo /etc/rsyncd.conf e copie /lib/systemd/system/rsync.service para /etc/systemd/system/rsync.service.

sudo nano /etc/rsyncd.conf # save and close it
sudo cp /lib/systemd/system/rsync.service /etc/systemd/system/rsync.service

Agora reinicie o serviço.

sudo systemctl restart rsync

Etapa 2 - Configurando o servidor da fonte de dados

Primeiro, adicione estas linhas ao arquivo de configuração do rsync /etc/rsyncd.conf. Altere o parâmetro 'path' para o caminho dos arquivos de origem para backup. Para 'uid' e 'gid', use o nome de usuário e o grupo existentes com permissões de leitura nas pastas de origem do backup.

sudo nano /etc/rsyncd.conf
# 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

Os dados no parâmetro "auth users" e o arquivo /etc/rsyncd.passwd são usados para autorização entre o rsync em computadores diferentes. Adicione uma linha nesse arquivo, como esta:

sudo nano /etc/rsyncd.passwd
backup-user:test-pass

Altere as permissões do arquivo rsyncd.passwd.

sudo chmod 0600 /etc/rsyncd.passwd

Reinicie o serviço para aplicar as alterações.

sudo systemctl restart rsync

Etapa 3 - Executando o backup

Crie o arquivo /etc/rsyncd.passwd no servidor receptor onde os backups serão armazenados. Digite a mesma senha do computador de origem, mas sem o nome de usuário, e defina 600 permissões para ele.

sudo nano /etc/rsyncd.passwd
test-pass # Save and close file
sudo chmod 0600 /etc/rsyncd.passwd

Para realizar um backup, execute o comando:

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

Substitua source-server-ip pelo endereço IP do primeiro servidor e '/destination/path/' pelo caminho para armazenar backups.

Para backups regulares, basta adicionar a tarefa ao final do arquivo /etc/crontab.