Capítulo 27. Sincronização de arquivos

Sumário

27.1. Software de sincronização de dados disponível
27.2. Determinando fatores para selecionar um programa
27.3. Introdução ao Unison
27.4. Introdução ao CVS
27.5. Introdução ao Subversion
27.6. Introdução ao rsync
27.7. Introdução ao mailsync

Resumo

Atualmente, muitas pessoas usam vários computadores; um computador em casa, um ou mais no trabalho e possivelmente um laptop ou PDA quando viajam. Vários arquivos são necessários em todos esses computadores. Talvez você queira trabalhar com todos os computadores e modificar os arquivos, conseqüentemente tendo a versão mais recente dos dados disponíveis em todos os computadores.


27.1. Software de sincronização de dados disponível

A sincronização de dados não é um problema para computadores permanentemente conectados por uma rede rápida. Nesse caso, use um sistema de arquivos de rede, como o NFS, e armazene os arquivos em um servidor para que todos os hosts acessem os mesmos dados via rede. Essa abordagem será impossível se a conexão de rede for instável ou não permanente. Quando você viaja com um laptop, precisa ter cópias de todos os arquivos necessários no disco rígido local. Entretanto, é necessário sincronizar os arquivos modificados. Quando você modificar um arquivo em um computador, verifique se uma cópia dele foi atualizada em todos os outros computadores. No caso de cópias ocasionais, elas podem ser feitas manualmente com o scp ou o rsync. Entretanto, se vários arquivos forem envolvidos, o procedimento poderá ser complicado e demandar muito cuidado para evitar erros, como a sobregravação de um arquivo novo por um antigo.

[Warning]Risco de perda de dados

Antes de começar a gerenciar seus dados com um sistema de sincronização, você deve se informar sobre o programa usado e testar sua funcionalidade. É indispensável ter um backup de arquivos importantes.

A tarefa prolongada e sujeita a erros de sincronizar dados manualmente pode ser evitada se você usar um dos programas que utilizam vários métodos para automatizá-la. Os resumos a seguir têm o simples objetivo de dar uma visão geral sobre como esses programas funcionam e como podem ser usados. Se você planeja usá-los, leia a documentação do programa.

27.1.1. Unison

O Unison não é um sistema de arquivos de rede. Em vez disso, os arquivos são simplesmente gravados e editados localmente. O programa Unison pode ser executado manualmente para sincronizar arquivos. Quando a sincronização é executada pela primeira vez, um banco de dados é criado nos dois hosts, contendo checksums, marcações de horários e permissões dos arquivos selecionados. Na próxima vez em que for executado, o Unison poderá reconhecer quais arquivos foram mudados e propor que a transmissão seja feita do outro host ou para ele. Normalmente, todas as sugestões podem ser aceitas.

27.1.2. CVS

O CVS, que é mais usado para gerenciar versões de origem de programas, oferece a possibilidade de manter cópias dos arquivos em vários computadores. Dessa forma, ele também é adequado para sincronização de dados. O CVS mantém um repositório central no servidor, no qual os arquivos e as mudanças feitas neles são gravados. As mudanças realizadas localmente são enviadas para o repositório e podem ser recuperadas de outros computadores por meio de uma atualização. Todos os procedimentos devem ser iniciados pelo usuário.

O CVS é muito suscetível a erros quando ocorrem mudanças em vários computadores. As mudanças são fundidas e, se elas forem feitas nas mesmas linhas, um conflito será reportado. Quando ocorre um conflito, o banco de dados permanece em estado consistente. O conflito só fica visível para resolução no host cliente.

27.1.3. Subversion

Ao contrário do CVS, que “evoluiu”, o Subversion (SVN) é um projeto de design consistente. O Subversion foi desenvolvido como sucessor tecnicamente aprimorado do CVS.

O Subversion foi aprimorado em vários aspectos com relação ao seu antecessor. Devido ao seu histórico, o CVS mantém apenas arquivos e não lida com diretórios. Os diretórios também têm um histórico de versão no Subversion e podem ser copiados e renomeados, assim como os arquivos. Também é possível adicionar metadados a todos os arquivos e todos os diretórios. Esses metadados podem ser totalmente mantidos com o controle de versão. Em oposição ao CVS, o Subversion tem suporte para acesso transparente à rede por protocolos dedicados, como o WebDAV. O WebDAV estende a funcionalidade do protocolo HTTP para permitir acesso de gravação colaborativo a arquivos em servidores Web remotos.

O Subversion foi montado principalmente com base em pacotes de software existentes. Portanto, o servidor Web do Apache e a extensão WebDAV sempre são executados junto com o Subversion.

27.1.4. mailsync

Diferentemente das ferramentas de sincronização abordadas nas seções anteriores, o mailsync sincroniza somente e-mails entre caixas de correio. O procedimento pode ser aplicado em arquivos de caixas de correio locais, bem como em caixas de correio de um servidor IMAP.

Com base no ID da mensagem contido no cabeçalho do e-mail, as mensagens específicas são sincronizadas ou apagadas. A sincronização é possível entre caixas de correio específicas e entre hierarquias de caixas de correio.

27.1.5. rsync

Quando o controle de versão não é necessário, mas grandes estruturas de diretório precisam ser sincronizadas em conexões de rede lentas, a ferramenta rsync oferece mecanismos avançados para a transmissão apenas de mudanças entre arquivos. Isso não diz respeito somente a arquivos de texto, mas também a arquivos binários. Para detectar as diferenças entre os arquivos, o rsync os subdivide em blocos e realiza checksums neles.

O esforço dedicado à detecção das mudanças tem um preço. Os sistemas a serem sincronizados devem ser dimensionados generosamente para uso do rsync. A RAM é especialmente importante.

27.1.6. Novell iFolder

O Novell iFolder permite acessar seus arquivos de qualquer local e a qualquer momento. Se você colocar os arquivos no diretório do iFolder, ele será sincronizado instantaneamente com o servidor. Com esse método, é possível trabalhar de qualquer lugar.

O Novell iFolder também permite trabalhar offline. Isso é muito conveniente se você não tiver uma conexão com a Internet, por exemplo, e estiver trabalhando com um laptop durante viagens. Assim que você conseguir conectar-se com a Internet, as mudanças do seu trabalho serão enviadas para o servidor.

Trabalhar com o iFolder envolve estas etapas:

  1. Efetue login antes de trabalhar com o iFolder.

  2. Mude suas preferências com relação à freqüência de sincronização.

  3. Sincronize os arquivos e exiba a atividade entre o seu cliente e o servidor iFolder.

  4. Solucione todos os conflitos durante a sincronização. Os conflitos ocorrem quando você altera o mesmo arquivo em dois computadores diferentes. O iFolder armazena arquivos em conflito em um diretório separado para impedir a perda de dados.

Para obter mais informações sobre o iFolder, consulte http://www.novell.com/en-en/documentation/. Encontre dicas e truques úteis sobre o iFolder em http://www.novell.com/coolsolutions/ifmag/.