Editado 5 meses atrás por ExtremeHow Equipe Editorial
BackupLinha de comandoArquivosSincronizaçãoGestão de DadosUtilitáriosScriptingSegurançaArmazenamentoTransferências
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.
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.
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
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.
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/
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.
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/ &
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.
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.
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
.
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.
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.
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ã.
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