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.
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 47.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.
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: |
|
Servidor: |
|
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 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 .
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 47.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.
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.