você está aqui: Home  → Arquivo de Mensagens Programação Shell Linux: Inscrições Abertas

Sincronismo de conteúdo entre servidores

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 05 de Setembro de 2001

Para transferir o conteúdo de diretórios ou partições entre dois computadores, o rsync é o aplicativo que melhor se adequa.

Ele faz o sincronismo de conteúdo e apenas os arquivos que mudarem, ou partes deles, são transferidos. O primeiro sincronismo, por envolver todo o conteúdo, é mais demorado. Os sincronismos subsequentes ocorrem rapidamente pois apenas as diferenças são transmitidas.

O rsync deve rodar em modo daemon em um dos computadores, aquele que irá receber as solicitações de transferência. Para isto, invocar o comando rsync:

# rsync --daemon

O rsync irá então ler um arquivo de configuração, geralmente /etc/rsyncd.conf, a partir de onde obterá as informações sobre como deverá funcionar e a quais diretórios será permitido o acesso.

Para sincronizar o conteúdo remotamente, basta invocar então o comando rsync como abaixo:

% rsync -avz -e ssh www.ccuec.unicamp.br:/home .

O comando acima irá contactar a máquina www.ccuec.unicamp.br e fará o sincronismo do diretório remoto /home na máquina local.

As opções significam:

-a - Esta flag é uma combinação de diversas outras opções
     que significam basicamente que se deseja a recursão
     e que se preserve todas as propriedades dos arquivos
     (permissões, etc.)
-z - transferir os dados compactados
-v - trabalhar em modo verboso, exibindo todos os arquivos
     sendo transferidos e informações sobre a conexão.
-e ssh - indica que a transferência será feita através do
         ssh, garantindo a transmissão segura dos dados.

Além destas opções, o rsync possui diversas outras, que nos permitem uma grande flexibilidade na forma de trabalho. Para mais informações ler a man page do comando rsync.

No lado do servidor, incluo a seguir um modelo do arquivo /etc/rsyncd.conf, que permite aos usuários queiroz, mgm e root, o acesso a partir da partição raiz.

uid = nobody
gid = nobody
log file=/var/log/rsyncd
pid file = /etc/rsyncd.pid
max connections = 4
use chroot = no
syslog facility = local5
[/]
        comment=usr
        path=/usr
        read only=false
        list=true
        hosts
        allow=200.200.20.20/255.255.255.0
        auth users = queiroz, mgm, root


Veja a relação completa dos artigos de Rubens Queiroz de Almeida