O rsync será útil quando for necessário transmitir grandes quantidades de dados regularmente, sem que haja muitas mudanças. Esse é, por exemplo, sempre o caso da criação de backups. Uma outra aplicação diz respeito a servidores para teste. Esses servidores armazenam árvores completas de diretório de servidores Web regularmente espelhadas em um servidor Web em um DMZ.
O rsync pode ser operado em dois modos diferentes. Ele pode ser usado para arquivar ou copiar dados. Para isso, somente um shell remoto, como o ssh, é necessário no sistema de destino. Entretanto, o rsync também pode ser usado como um daemon para fornecer diretórios à rede.
O modo de operação básica do rsync não requer qualquer configuração especial. O rsync permite diretamente o espelhamento de diretórios inteiros em outro sistema. Como exemplo, o comando a seguir cria um backup do diretório pessoal do tux em um servidor de backup chamado de sun:
rsync -baz -e ssh /home/tux/ tux@sun:backup
O comando a seguir é usado para reproduzir o diretório de volta:
rsync -az -e ssh tux@sun:backup /home/tux/
Até esse ponto, o gerenciamento não é muito diferente do de uma ferramenta de cópia comum, como o scp.
O rsync deve ser operado no modo “rsync” para que todos os recursos fiquem totalmente disponíveis. Isso é feito ao se iniciar o daemon rsyncd em mais de um sistema. Configure-o no arquivo /etc/rsyncd.conf. Por exemplo, para tornar o diretório /srv/ftp disponível com o rsync, use a seguinte configuração:
gid = nobody uid = nobody read only = true use chroot = no transfer logging = true log format = %h %o %f %l %b log file = /var/log/rsyncd.log [FTP] path = /srv/ftp comment = An Example
Em seguida, inicie o rsyncd com rcrsyncd start. O rsyncd também pode ser iniciado automaticamente durante o processo de inicialização. Configure esse recurso ativando esse serviço no editor de níveis de execução fornecido pelo YaST ou digitando manualmente o comando insserv rsyncd. O rsyncd também pode ser iniciado com xinetd. Entretanto, isso só é recomendável para servidores que raramente usam o rsyncd.
O exemplo também cria um arquivo de registro listando todas as conexões. Esse arquivo é armazenado em /var/log/rsyncd.log.
Então será possível testar a transferência de um sistema cliente. Faça isso com o seguinte comando:
rsync -avz sun::FTP
Esse comando lista todos os arquivos presentes no diretório /srv/ftp do servidor. Essa solicitação também é registrada no arquivo de registro /var/log/rsyncd.log. Para iniciar uma transferência real, forneça um diretório de destino. Use . para o diretório atual. Por exemplo:
rsync -avz sun::FTP .
Por padrão, nenhum arquivo será apagado durante a sincronização com o rsync. Se esse procedimento for forçado, a opção adicional --delete deverá ser expressa. Para garantir que nenhum arquivo novo seja apagado, use a opção --update como alternativa. Qualquer conflito ocorrido deve ser resolvido manualmente.
Informações importantes sobre o rsync são fornecidas nas páginas de manual man rsync eman rsyncd.conf. Uma referência técnica sobre os princípios de operação do rsync pode ser encontrada em /usr/share/doc/packages/rsync/tech_report.ps. Encontre as notícias mais recentes sobre o rsync no site do projeto, em http://rsync.samba.org/.