Poupe até 53% em Servidores VPS, escolha agora. Oferta limitada.

Otimizar Rsync no Rocky Linux 9: velocidade e eficiência

16 min de leitura  ·  Guia técnico

Otimizar o rsync no Rocky Linux 9 significa configurar flags, compressão, autenticação SSH e agendamento para transferir arquivos com o menor uso de banda e CPU possível. Para aplicar as otimizações essenciais, siga estes passos:

  1. Instale ou confirme a versão do rsync disponível no Rocky Linux 9
  2. Configure autenticação SSH por chave para transferências seguras e automatizadas
  3. Escolha as flags corretas (-az, --delete, --checksum) conforme o cenário
  4. Ative compressão e limite de banda com --compress e --bwlimit
  5. Agende sincronizações automáticas via cron para horários de baixo tráfego
  6. Monitore logs e valide a integridade das transferências

Pré-requisitos para otimizar o rsync no Rocky Linux 9

  • Sistema operacional: Rocky Linux 9 (testado também no AlmaLinux 9)
  • Acesso: usuário root ou com privilégios sudo no servidor de origem e destino
  • rsync instalado: versão 3.2.x ou superior (padrão nos repositórios do Rocky Linux 9)
  • OpenSSH: servidor SSH ativo no host de destino para transferências remotas
  • Par de chaves SSH: gerado e copiado para o servidor remoto (necessário para automação via cron)
  • Espaço em disco: suficiente no destino para acomodar os dados a sincronizar
  • Acesso à internet ou rede local: conectividade entre origem e destino

Instalação e verificação do rsync no Rocky Linux 9

A sincronização eficiente de arquivos começa com a versão correta do rsync instalada. No Rocky Linux 9, o pacote está disponível diretamente nos repositórios AppStream sem necessidade de repositórios externos.

  1. Verifique se o rsync já está instalado:
rsync --version
rsync  version 3.2.3  protocol version 31
Copyright (C) 1996-2020 by Andrew Tridgell, Wayne Davison, and others.
...
  1. Caso não esteja instalado, instale via DNF:
sudo dnf install rsync -y
Installed:
  rsync-3.2.3-19.el9.x86_64

Complete!
  1. Confirme o caminho do binário para uso no cron:
which rsync
/usr/bin/rsync

Com o rsync instalado e o caminho confirmado, você está pronto para configurar transferências otimizadas. Para entender melhor como acessar seu servidor antes de prosseguir, consulte o artigo Acessando servidores VPS Linux da AviraHost.

Configurando autenticação SSH por chave para rsync seguro

A transferência remota de arquivos via rsync sobre SSH é o método mais seguro para sincronizar dados entre servidores. Configurar autenticação por chave elimina a necessidade de senha interativa, habilitando automação completa.

  1. Gere um par de chaves SSH no servidor de origem (se ainda não existir):
ssh-keygen -t ed25519 -C "rsync-backup-rocky9" -f ~/.ssh/id_rsync
Generating public/private ed25519 key pair.
Enter passphrase (empty for no passphrase): 
Your identification has been saved in /root/.ssh/id_rsync
Your public key has been saved in /root/.ssh/id_rsync.pub

Atenção: para uso em cron, deixe a passphrase vazia. Proteja a chave privada com permissões restritivas.

  1. Copie a chave pública para o servidor de destino:
ssh-copy-id -i ~/.ssh/id_rsync.pub [email protected]
Number of key(s) added: 1

Now try logging into the machine, with:   "ssh '[email protected]'"
  1. Teste a conexão sem senha:
ssh -i ~/.ssh/id_rsync [email protected] "echo conexao ok"
conexao ok
  1. Configure o arquivo ~/.ssh/config para simplificar os comandos rsync:
Host backup-destino
    HostName 192.168.1.100
    User usuario
    IdentityFile ~/.ssh/id_rsync
    StrictHostKeyChecking no

Com esse alias configurado, você pode usar backup-destino diretamente nos comandos rsync, tornando os scripts mais legíveis e fáceis de manter.

Flags essenciais para otimizar velocidade e eficiência do rsync

O algoritmo delta-transfer do rsync já é eficiente por padrão, mas a combinação correta de flags determina o equilíbrio entre velocidade, uso de CPU e integridade dos dados. Cada flag tem impacto direto no desempenho.

Otimizar rsync com as flags corretas por cenário

Abaixo estão os conjuntos de flags recomendados para os cenários mais comuns em servidores Rocky Linux 9:

  • Backup incremental padrão (recomendado para a maioria dos casos):
rsync -az --delete --progress /var/www/html/ usuario@backup-destino:/backups/www/
  • -a (archive): preserva permissões, timestamps, links simbólicos, proprietário e grupo
  • -z (compress): comprime os dados durante a transferência, reduzindo uso de banda
  • --delete: remove do destino arquivos que não existem mais na origem
  • --progress: exibe progresso em tempo real (remova em scripts automatizados)
  • Verificação por checksum (mais lento, mais preciso):
rsync -az --checksum /dados/criticos/ usuario@backup-destino:/backups/criticos/

A flag --checksum força o rsync a comparar o conteúdo real dos arquivos em vez de usar apenas tamanho e timestamp. Use apenas quando a integridade absoluta for prioritária, pois aumenta o uso de CPU.

  • Transferência sem compressão (redes locais gigabit):
rsync -a --delete /dados/locais/ /mnt/backup-local/

Em redes locais de alta velocidade, a compressão pode ser contraproducente, pois o overhead de CPU supera o ganho de banda. Omita -z nesses cenários.

  • Excluir arquivos e diretórios específicos:
rsync -az --delete \
  --exclude="*.log" \
  --exclude="cache/" \
  --exclude="tmp/" \
  /var/www/ usuario@backup-destino:/backups/www/

Excluir logs e caches reduz significativamente o volume transferido sem comprometer a utilidade do backup.

Limitando largura de banda para não saturar a rede em produção

Em ambientes de produção, controlar o consumo de banda durante sincronizações é fundamental para não impactar outros serviços. O rsync oferece controle granular via --bwlimit.

Como usar --bwlimit para controle de banda no rsync

rsync -az --delete --bwlimit=5000 /var/www/ usuario@backup-destino:/backups/www/

O valor 5000 representa 5.000 KB/s (aproximadamente 5 MB/s). Ajuste conforme a capacidade disponível:

  • --bwlimit=2000 — 2 MB/s, ideal para links compartilhados ou horário comercial
  • --bwlimit=10000 — 10 MB/s, adequado para janelas de manutenção noturna
  • --bwlimit=0 — sem limite (padrão), use apenas em janelas de manutenção dedicadas

Para verificar a velocidade real durante a transferência, combine com --progress:

rsync -az --bwlimit=5000 --progress /dados/ usuario@backup-destino:/backups/dados/
arquivo_grande.tar.gz
    524,288,000 100%    4.89MB/s    0:01:42 (xfr#1, to-chk=0/1)

Esse output confirma que o limite está sendo respeitado (4.89 MB/s próximo ao limite de 5 MB/s configurado).

Agendando rsync automaticamente com cron no Rocky Linux 9

A automação de backups via cron é a forma mais confiável de garantir sincronizações regulares sem intervenção manual. No Rocky Linux 9, o serviço crond está ativo por padrão.

  1. Verifique se o crond está em execução:
systemctl status crond
● crond.service - Command Scheduler
     Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled)
     Active: active (running)
  1. Abra o crontab do root para edição:
crontab -e
  1. Adicione as entradas de agendamento. Exemplos práticos:
# Backup diário às 2h da manhã
0 2 * * * /usr/bin/rsync -az --delete /var/www/ usuario@backup-destino:/backups/www/ >> /var/log/rsync-www.log 2>&1

# Backup a cada 6 horas com limite de banda
0 */6 * * * /usr/bin/rsync -az --delete --bwlimit=3000 /dados/ usuario@backup-destino:/backups/dados/ >> /var/log/rsync-dados.log 2>&1

# Sincronização de configurações toda segunda-feira às 3h
0 3 * * 1 /usr/bin/rsync -az /etc/ usuario@backup-destino:/backups/etc/ >> /var/log/rsync-etc.log 2>&1
  1. Verifique os logs após a primeira execução:
tail -f /var/log/rsync-www.log
sending incremental file list
./
index.php
wp-content/uploads/2024/01/imagem.jpg

sent 1,234,567 bytes  received 892 bytes  2,470,918.00 bytes/sec
total size is 45,678,901  speedup is 36.99

O campo speedup indica quantas vezes mais eficiente foi a transferência incremental em relação a copiar tudo. Valores altos confirmam que o delta-transfer está funcionando corretamente.

Para dicas adicionais de otimização do seu servidor Linux, consulte o artigo Dicas de Otimização de Servidores Linux.

Usando rsync para backup incremental com histórico de versões

A retenção de versões anteriores de arquivos é uma estratégia avançada que combina rsync com hard links, permitindo manter múltiplos snapshots sem duplicar o espaço em disco para arquivos não modificados.

  1. Crie a estrutura de diretórios para snapshots datados:
mkdir -p /backups/snapshots/$(date +%Y-%m-%d)
  1. Execute o rsync com --link-dest apontando para o snapshot anterior:
HOJE=$(date +%Y-%m-%d)
ONTEM=$(date -d "yesterday" +%Y-%m-%d)

rsync -az --delete \
  --link-dest=/backups/snapshots/$ONTEM \
  /var/www/html/ \
  /backups/snapshots/$HOJE/

Com --link-dest, arquivos não modificados são representados por hard links para o snapshot anterior, ocupando espaço mínimo. Apenas arquivos novos ou alterados consomem espaço adicional.

  1. Verifique o espaço real consumido por cada snapshot:
du -sh /backups/snapshots/*/
2.1G    /backups/snapshots/2024-01-15/
4.2K    /backups/snapshots/2024-01-16/
128K    /backups/snapshots/2024-01-17/

O primeiro snapshot ocupa o espaço total. Os subsequentes ocupam apenas o delta das mudanças, tornando essa abordagem extremamente eficiente para retenção de histórico.

  1. Automatize a limpeza de snapshots antigos (manter últimos 30 dias):
find /backups/snapshots/ -maxdepth 1 -type d -mtime +30 -exec rm -rf {} \;

Atenção: o comando acima remove diretórios permanentemente. Teste com --dry-run antes de executar em produção:

find /backups/snapshots/ -maxdepth 1 -type d -mtime +30 -print

Problemas comuns e como resolver

Sintoma: rsync falha com "Permission denied (publickey)"

Causa: a chave SSH não foi corretamente copiada para o servidor de destino, ou as permissões do diretório ~/.ssh estão incorretas.
Solução: verifique as permissões no servidor de destino com ls -la ~/.ssh/. O diretório deve ter permissão 700 e o arquivo authorized_keys deve ter 600. Corrija com chmod 700 ~/.ssh && chmod 600 ~/.ssh/authorized_keys. Confirme também que o arquivo sshd_config tem PubkeyAuthentication yes e reinicie o SSH com systemctl restart sshd.

Sintoma: transferência muito lenta mesmo em rede rápida

Causa: a flag -z (compressão) pode ser contraproducente em redes locais de alta velocidade ou ao transferir arquivos já comprimidos (ZIP, JPEG, MP4), pois o overhead de CPU supera o ganho de banda.
Solução: remova a flag -z para transferências em rede local gigabit ou use --compress-level=1 para compressão mínima. Para arquivos já comprimidos, adicione --skip-compress=gz/zip/jpg/mp4/mkv para evitar recompressão desnecessária:

rsync -a --delete --skip-compress=gz/zip/jpg/mp4 /dados/ usuario@destino:/backups/

Sintoma: rsync via cron não executa ou não encontra o comando

Causa: o cron usa um ambiente mínimo sem as variáveis PATH do usuário, e o binário rsync ou a chave SSH podem não ser encontrados.
Solução: sempre use o caminho absoluto do rsync (/usr/bin/rsync) e especifique explicitamente a chave SSH com -e "ssh -i /root/.ssh/id_rsync" no comando cron:

0 2 * * * /usr/bin/rsync -az --delete -e "ssh -i /root/.ssh/id_rsync" /var/www/ [email protected]:/backups/www/ >> /var/log/rsync.log 2>&1

Sintoma: erro "No space left on device" no destino

Causa: o diretório de destino ficou sem espaço em disco, especialmente quando --delete não está ativo e arquivos antigos acumularam.
Solução: verifique o espaço disponível com df -h no servidor de destino. Ative --delete para remover arquivos obsoletos, ou use --max-size=100M para limitar o tamanho dos arquivos transferidos. Considere também expandir o volume ou adicionar um disco dedicado para backups.

Perguntas frequentes sobre rsync no Rocky Linux 9

Qual a diferença entre rsync com e sem a flag --delete?

A flag --delete instrui o rsync a remover do destino os arquivos que não existem mais na origem, mantendo os dois diretórios sincronizados com exatidão. Sem ela, arquivos deletados na origem permanecem no destino, o que pode consumir espaço desnecessário ao longo do tempo. Para backups de espelhamento, sempre use --delete. Para backups de retenção onde você quer manter versões antigas, omita a flag intencionalmente.

O rsync transfere apenas os blocos alterados de um arquivo?

Sim. O rsync usa o algoritmo delta-transfer para identificar e enviar apenas os blocos que foram modificados dentro de cada arquivo, em vez de retransmitir o arquivo inteiro. Isso reduz drasticamente o uso de banda em transferências incrementais de arquivos grandes. O algoritmo divide o arquivo em blocos, calcula checksums e compara com o destino antes de decidir o que transmitir, tornando o rsync muito mais eficiente que ferramentas como FTP ou SCP para sincronizações recorrentes.

Como agendar o rsync automaticamente no Rocky Linux 9?

Crie uma entrada no crontab do usuário root com o comando crontab -e e adicione a linha com o horário desejado e o comando rsync completo. Por exemplo, para executar diariamente às 2h da manhã: 0 2 * * * /usr/bin/rsync -az --delete /origem/ usuario@destino:/destino/ garante sincronização automática sem intervenção manual. Redirecione a saída para um arquivo de log com >> /var/log/rsync.log 2>&1 para facilitar o diagnóstico de falhas.

É seguro usar rsync sobre SSH para transferências entre servidores?

Sim, o rsync sobre SSH criptografa todo o tráfego durante a transferência, protegendo os dados contra interceptação. Para maior segurança, configure autenticação por chave SSH sem senha, o que também permite execução automatizada via cron sem necessidade de digitar credenciais. Prefira chaves do tipo Ed25519 por oferecerem segurança equivalente ao RSA-4096 com chaves menores e operações mais rápidas.

Como limitar a largura de banda usada pelo rsync para não saturar a rede?

Use a flag --bwlimit=KBPS para definir o limite em kilobytes por segundo. Por exemplo, --bwlimit=5000 restringe o rsync a 5 MB/s, deixando banda disponível para outros serviços em produção. Esse parâmetro é especialmente útil em backups agendados durante o horário comercial. Combine com --progress durante testes para confirmar que o limite está sendo respeitado antes de automatizar via cron.

Conclusão

Otimizar o rsync no Rocky Linux 9 envolve escolher as flags certas para cada cenário, configurar autenticação SSH segura e automatizar as sincronizações via cron. Com as configurações apresentadas neste artigo, você terá transferências eficientes, seguras e com consumo controlado de recursos.

  • Implemente imediatamente: configure autenticação SSH por chave Ed25519 e teste a conexão sem senha antes de qualquer automação
  • Adote como padrão: use rsync -az --delete --bwlimit=5000 para backups remotos em produção, ajustando o limite de banda conforme a janela de manutenção
  • Monitore regularmente: verifique os logs de rsync semanalmente e configure alertas para falhas de execução no cron, garantindo que os backups estejam realmente ocorrendo

Leia também

Precisa de ajuda com rsync e backups no seu servidor?

Configurar e manter backups automatizados com rsync exige um servidor Linux estável e com recursos adequados. Os planos de VPS da AviraHost oferecem ambiente Rocky Linux 9 pronto para uso, com suporte técnico especializado para ajudar na configuração inicial.

Conheça os planos de VPS da AviraHost

  • 0 Os usuários acharam isso útil
  • rsync, Rocky Linux, backup, transferencia-arquivos, AviraHost, cron, SSH
Esta resposta foi útil?

Artigos Relacionados

Instalando painel de gerenciamento de hospedagem VirtualMin.

O virtualmin é um painel de gerenciamento de hospedagem de sites gratuito, que é suportado por...

Como usar a ferramenta oficial de acesso remoto do Windows no PC e celular

1. Pelo menu Iniciar, acesse os “Acessórios do Windows” e abra o “Conexão de Área de Trabalho...

Como acessar o painel de gerenciamento dos meus Serviços.

Para acessar o painel de gerenciamento do seu serviço basta seguir o passo á passo abaixo.   1....

Compreendendo o Servidor VPS: O que é e Como Funciona!

Um servidor VPS (Virtual Private Server) é uma solução de hospedagem na qual um servidor físico é...

Como trocar a senha do usuário root do servidor VPS ou Dedicado.

Para trocar a senha do usuário root em um servidor VPS da AviraHost, você pode seguir os...