27.3. Introdução ao Unison

O Unison é uma excelente solução para sincronizar e transferir árvores inteiras de diretórios. A sincronização é executada nas duas direções e pode ser controlada por meio de um front end gráfico intuitivo. Também é possível usar uma versão de console. A sincronização pode ser automatizada, de forma que a interação com o usuário não seja necessária, mas é preciso ter experiência.

27.3.1. Requisitos

O Unison deve ser instalado no cliente e no servidor. Nesse contexto, o termo servidor se refere a um segundo host, o host remoto (diferente do CVS, explicado na Seção 27.1.2, “CVS”).

Na seção a seguir, o Unison será usado com o ssh. Nesse caso, um cliente SSH deve ser instalado no cliente e um servidor SSH deve ser instalado no servidor.

27.3.2. Usando o Unison

A abordagem usada pelo Unison é a associação de dois diretórios (roots). Essa associação é simbólica; não se trata de uma conexão online. Neste exemplo, o layout do diretório é o seguinte:

Cliente:

/home/tux/dir1

Servidor:

/home/geeko/dir2

Você deseja sincronizar esses dois diretórios. O usuário é conhecido como tux no cliente e como geeko no servidor. A primeira coisa a fazer é testar se a comunicação entre cliente e servidor funciona:


unison -testserver /home/tux/dir1 ssh://geeko@server//homes/geeko/dir2

Os problemas encontrados com mais freqüência são:

  • As versões do Unison usadas no cliente e no servidor não são compatíveis.

  • O servidor não permite conexões com SSH.

  • Nenhum dos dois caminhos especificados existe.

Se tudo funcionar, omita a opção -testserver. Durante a primeira sincronização, o Unison ainda não conhece a relação entre os dois diretórios e envia sugestões para a direção da transferência dos arquivos e diretórios específicos. As setas da coluna Ação indicam a direção da transferência. Um ponto de interrogação significa que o Unison não é capaz de fazer uma sugestão com relação à direção da transferência, pois as duas versões foram mudadas ou são novas.

As teclas de seta podem ser usadas para definir a direção da transferência de entradas específicas. Se as direções de transferência estiverem corretas para todas as entradas exibidas, simplesmente clique em Ir.

As características do Unison (por exemplo, se ele executa a sincronização automaticamente em casos de limpeza) podem ser controladas por meio de parâmetros de linha de comando especificados quando o programa é iniciado. Veja a lista completa de todos os parâmetros com unison --help.

Exemplo 27.1. O arquivo ~/.unison/example.prefs

root=/home/tux/dir1
root=ssh://wilber@server//homes/wilber/dir2
batch=true

Para cada par é mantido um registro de sincronização no diretório do usuário ~/.unison. Definições de configuração, como ~/.unison/example.prefs, também podem ser armazenadas neste diretório. Para iniciar a sincronização, especifique esse arquivo como parâmetro da linha de comando, como em unison example.prefs.

27.3.3. Mais informações

A documentação oficial do Unison é extremamente útil. Por essa razão, esta seção simplesmente fornece uma breve introdução. O manual completo está disponível em http://www.cis.upenn.edu/~bcpierce/unison/ e no unison do pacote SUSE.