Este guia descreve a configuração de backups usando rsync entre dois servidores. O cenário envolve um servidor de origem (hostOrigem com IP 10.0.0.1) e um servidor de destino (hostDestino com IP 10.0.0.2), com o objetivo de sincronizar dados do servidor de origem para o destino. O rsync opera no modo cliente/servidor (C/S) na porta padrão 873.
Formatos Comuns do Comando rsync e Opções
O rsync suporta vários formatos para enviar ou receber dados. Por exemplo:
rsync [OPÇÕES] ORIGEM [USUÁRIO@]HOST:DESTINO # Envio de dados do cliente para o servidor
rsync [OPÇÕES] [USUÁRIO@]HOST:ORIGEM DESTINO # Recepção de dados do servidor pelo cliente
Opções frequentemente usadas incluem:
-aou--archive: modo de arquivo completo, equivalente a-rlptgoD.-zou--compress: compacta dados durante a transferência, ideal para múltiplos arquivos pequenos.-vou--verbose: exibe informações detalhadas.--delete: remove arquivos no destino que não existem na origem.--password-file=ARQUIVO: lê a senha de um arquivo especificado.
Configuração Passo a Passo
1. Verificação e Instalação de Pacotes
Verifique se rsync e xinetd estão instalados nos servidores. Se não, instale-os e configure para iniciar automaticamente:
# Verificação no hostDestino
sudo yum list installed | grep rsync
sudo yum list installed | grep xinetd
# Instalação, se necessário
sudo yum -y install rsync xinetd
sudo systemctl enable rsync
sudo systemctl enable xinetd
2. Criação de Usuários de Sistema
Crie um usuário com mesmo nome em ambos os servidores, mas com senhas diferentes para este exemplo:
# No hostOrigem (10.0.0.1)
sudo useradd backupuser
echo "backupuser:senhaOrigem123" | sudo chpasswd
# No hostDestino (10.0.0.2)
sudo useradd backupuser
echo "backupuser:senhaDestino456" | sudo chpasswd
3. Preparação de Diretórios e Permissões
No servidor de origem, crie o diretório de dados e configure as permissões usando ACLs:
sudo mkdir -p /dados/origem
sudo setfacl -m u:backupuser:rwx /dados/origem
sudo setfacl -m d:u:backupuser:rwx /dados/origem
sudo cp -r /var/log/* /dados/origem/ # Exemplo de dados para backup
No servidor de destino, crie o diretório de backup e ajuste a propriedade:
sudo mkdir -p /dados/backup
sudo chown backupuser:backupuser /dados/backup
4. Sincronização de Dados com Usuários de Sistema
Para enviar dados do hostOrigem para o hostDestino, inicie o daemon rsync no destino e execute o comando no origem:
# No hostDestino (10.0.0.2): iniciar daemon
sudo rsync --daemon
sudo netstat -antup | grep 873 # Verificar se a porta está em escuta
# No hostOrigem (10.0.0.1): enviar dados
rsync -avz /dados/origem/ backupuser@10.0.0.2:/dados/backup/
# Digite a senha quando solicitado
Para puxar dados do hostOrigem a partir do hostDestino, inicie o daemon no origem e execute o comando no destino:
# No hostOrigem (10.0.0.1): iniciar daemon
sudo rsync --daemon
# No hostDestino (10.0.0.2): receber dados
rsync -avz backupuser@10.0.0.1:/dados/origem/ /dados/backup/
# Digite a senha quando solicitado
Cnofiguração com Usuários Não-Sistema
Para maior flexibilidade, configure o rsync com usuários virtuais usando o arquivo de configuração /etc/rsyncd.conf.
Exemplo: Envio de Dados com Usuário Virtual
No hostDestino, edite /etc/rsyncd.conf com parâmetros globais e módulos:
# /etc/rsyncd.conf no hostDestino
uid = root
gid = root
address = 10.0.0.2
port = 873
hosts allow = 10.0.0.1/24
use chroot = yes
max connections = 5
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log
[modulobackup]
path = /dados/backup
comment = Módulo para backup de dados
read only = false
list = true
auth users = virtualuser
secrets file = /etc/rsync.secrets
Crie o arquivo de senhas e ajuste as permissões:
echo "virtualuser:senhaVirtual789" | sudo tee /etc/rsync.secrets
sudo chmod 600 /etc/rsync.secrets
Inicie o daemon com a configuração personalizada e configure o firewall:
sudo rsync --daemon --config=/etc/rsyncd.conf
sudo firewall-cmd --permanent --add-port=873/tcp
sudo firewall-cmd --reload
No hostOrigem, execute o comando para enviar dados ao módulo configurado:
rsync -avz /dados/origem/ virtualuser@10.0.0.2::modulobackup
# Digite a senha quando solicitado
Exemplo: Recepção de Dados com Usuário Virtual
No hostOrigem, configure /etc/rsyncd.conf de forma similar, mas apontando para o diretório de origem. Crie o arquivo de senhas corrsepondente, inicie o daemon e, no hostDestino, use o comando para puxar dados:
# No hostDestino (10.0.0.2)
rsync -avz virtualuser@10.0.0.1::modulodados /dados/backup/
# Digite a senha quando solicitado
Para automação, utilize a opção --password-file em scripts ou tarefas cron, armazenando a senha em um arquivo seguro.