27.6. Introdução ao rsync

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.

27.6.1. Configuração e operação

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.

27.6.2. Mais informações

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/.