JanelasMacSoftwareConfiguraçõesSegurançaProdutividadeLinuxAndroidDesempenhoConfiguraçãoApple Tudo

Como usar o rsync para backup e sincronização

Editado 5 meses atrás por ExtremeHow Equipe Editorial

BackupLinha de comandoArquivosSincronizaçãoGestão de DadosUtilitáriosScriptingSegurançaArmazenamentoTransferências

Como usar o rsync para backup e sincronização

Tradução atualizada 5 meses atrás

Rsync é uma ferramenta poderosa que pode ser usada para criar backups e sincronizar arquivos entre diferentes sistemas. É uma utilidade de linha de comando que permite transferências de arquivos rápidas e eficientes. Usando codificação delta, o Rsync transfere apenas as diferenças entre os diretórios de origem e destino. Isso o torna uma ferramenta ideal para backup e sincronização, especialmente em conexões de rede, devido ao seu baixo consumo de largura de banda.

Compreendendo os conceitos básicos do rsync

O Rsync pode ser usado para transferir arquivos localmente, bem como em um host remoto. A sintaxe básica do comando rsync é:

rsync [opções] origem destino

Aqui, origem é a localização dos arquivos que você deseja transferir, e destino é a localização para onde você deseja movê-los.

Instalação

O Rsync geralmente vem pré-instalado na maioria das distribuições Linux. Para verificar se está instalado, você pode digitar:

rsync --version

Se o Rsync não estiver instalado, você pode adicioná-lo usando o gerenciador de pacotes associado ao seu sistema operacional. Por exemplo, em um sistema baseado em Debian, você usaria:

sudo apt-get install rsync

Em sistemas baseados em Red Hat, você pode instalá-lo usando:

sudo yum install rsync

Uso básico do rsync

A função principal do rsync é a sincronização de arquivos e diretórios. Por exemplo, para copiar todos os arquivos do source_directory para o destination_directory, você pode usar o seguinte comando:

rsync -avzh /path/to/source_directory/ /path/to/destination_directory/

Vamos analisar as opções usadas neste comando:

Observe que a barra final em source_directory/ garante que apenas o conteúdo do diretório seja copiado, não o próprio diretório.

Rsync sobre SSH

Um dos recursos mais poderosos do rsync é sua capacidade de sincronizar arquivos pela rede usando SSH. Para garantir a transferência segura de dados, o SSH criptografa os dados para que nenhum bisbilhoteiro possa ler. Para sincronizar diretórios entre sistemas locais e remotos, você pode usar:

rsync -avz -e "ssh" user@remote_host:/path/to/remote_directory/ /path/to/local_directory/

Este comando usa a opção -e para especificar o programa de shell remoto (SSH neste caso).

Da mesma forma, para copiar arquivos do sistema local para o servidor remoto, altere os argumentos origem e destino:

rsync -avz /path/to/local_directory/ user@remote_host:/path/to/remote_directory/

Se o seu SSH usar uma porta diferente (além da padrão 22), você pode especificá-la usando:

rsync -avz -e "ssh -p 2222" /path/to/local_directory/ user@remote_host:/path/to/remote_directory/

Gerenciando exclusões

Ao sincronizar diretórios, você deseja que o diretório de destino espelhe exatamente o diretório de origem, incluindo exclusões. A opção --delete pode ser usada para esse fim:

rsync -avz --delete /path/to/source_directory/ /path/to/destination_directory/

Com --delete, o Rsync excluirá qualquer arquivo no destino que não exista na origem.

Gerenciando conjuntos de arquivos grandes

Para arquivos grandes ou um grande número de arquivos, o Rsync pode demorar muito para ser executado. Você pode acelerar esse processo executando o Rsync como um processo em segundo plano usando o símbolo &. Isso permite que você use sua linha de comando para outras tarefas:

rsync -avz /path/to/source/ /path/to/destination/ &

Checksums economizam tempo

Por padrão, o Rsync decide se um arquivo deve ser transferido com base em verificações como tamanho e hora de modificação. Para forçar uma transferência com base em diferenças de conteúdo, você pode usar:

rsync -avzc /path/to/source/ /path/to/destination/

A opção -c permitirá que o Rsync execute uma comparação de checksum, o que pode demorar mais, mas garante que cada arquivo transmitido seja idêntico.

Tipos de arquivo específicos

Você pode instruir o Rsync a incluir ou excluir tipos de arquivo específicos usando as opções de inclusão e exceção. Por exemplo, para sincronizar apenas arquivos de texto, você poderia digitar:

rsync -avz --include '*.txt' --exclude '*' /path/to/source/ /path/to/destination/

Aqui, --include instrui o Rsync a incluir apenas arquivos .txt, e --exclude instrui o Rsync a omitir todo o resto.

Registro do progresso dos arquivos de backup

Durante uma operação de backup, pode ser importante saber o que foi transferido e quando. O Rsync possui uma opção para isso:

rsync -avz --log-file=rsync.log /path/to/source/ /path/to/destination/

Este comando cria ou anexa logs ao arquivo rsync.log.

Usos avançados

Para usuários que precisam de mais do que os recursos básicos, o Rsync fornece opções avançadas. Por exemplo, você pode definir limites de largura de banda usando a opção --bwlimit, que permite definir a velocidade máxima de suas transferências:

rsync -avz --bwlimit=1000 /path/to/source/ /path/to/destination/

Isso limitará a largura de banda a 1000 KB/s.

Executando como um daemon

O Rsync pode operar como um daemon, sendo executado como um serviço em segundo plano ao qual os clientes podem se conectar para configurações grandes ou tarefas orientadas por script. Para habilitar isso, é necessária alguma configuração no arquivo rsyncd.conf. Por exemplo:

[backup] path = /path/to/share comment = Backup Directory read only = no list = yes uid = root gid = root auth users = username secrets file = /path/to/rsyncd.secrets

No modo daemon, o Rsync escuta solicitações sem a necessidade de SSH. No entanto, certifique-se de proteger essa configuração com um firewall e métodos de autenticação.

Automação

Para backups regulares, o Rsync pode ser automatizado usando cron jobs no Linux. Isso garante que os backups ocorram no horário especificado sem qualquer intervenção manual. Por exemplo, para configurar um backup diário às 2 da manhã, edite o arquivo crontab usando o seguinte:

crontab -e

Adicione a seguinte linha:

0 2 * * * rsync -avz /path/to/source/ /path/to/destination/

Este cron job executará o comando Rsync todos os dias às 2 da manhã.

Conclusão

O Rsync é uma ferramenta versátil que é inestimável para tarefas de backup e sincronização sistemáticas. Usando as opções e configurações adequadas, você pode personalizar o Rsync para atender a quase qualquer necessidade de backup de dados. Sua capacidade de realizar backups incrementais sincronizando apenas alterações o torna eficiente em termos de tempo e uso de recursos de rede. A natureza de código aberto e suporte multiplataforma faz do Rsync uma escolha ideal para soluções de backup automatizado.

Se você encontrar algo errado com o conteúdo do artigo, você pode


Comentários