Instalação Servidor · 4 min read · Nov 17, 2025

Instalando um Cluster Web, Email e Banco de Dados MySQL no Debian 8.4 Jessie com ISPConfig 3.1 - Página 4

** 7 Instalar Unison

Em seguida, instalamos o Unison. O Unison é usado para sincronizar o diretório /var/www entre o server1 e o server2.

Instale o unison no server1 e server2 com

apt-get install unison

Agora, instalamos um arquivo de configuração do unison no server1:

Crie um novo arquivo /root/.unison/web:

mkdir /root/.unison  
vi /root/.unison/web.prf

… e adicione o seguinte conteúdo:

# Raízes da sincronização
root = /var/www
root = ssh://192.168.0.106//var/www
 
# Caminhos a sincronizar
#path = www
#path = vmail
 
# Algumas expressões regulares especificando nomes e caminhos a ignorar
#ignore = Path stats    ## ignora /var/www/stats
#ignore = Path stats/*  ## ignora /var/www/stats/*
#ignore = Path */stats  ## ignora /var/www/somedir/stats, mas não /var/www/a/b/c/stats
#ignore = Name *stats   ## ignora todos os arquivos/diretórios que terminam com "stats"
#ignore = Name stats*   ## ignora todos os arquivos/diretórios que começam com "stats"
#ignore = Name *.tmp    ## ignora todos os arquivos com a extensão .tmp
ignore = Name sess_*  
ignore = Name *access.log*  
ignore = Name error.log  
ignore = Name webalizer.conf  
   
#          Quando definido como verdadeiro, esta flag faz com que a interface do usuário ignore
#          perguntas de confirmação sobre alterações não conflitantes. (Mais
#          precisamente, quando a interface do usuário termina de definir a
direção de propagação para uma entrada e está prestes a passar para a
#          próxima, ela ignorará todas as entradas não conflitantes e irá
#          diretamente para o próximo conflito.)
auto=true
   
#          Quando isso é definido como verdadeiro, a interface do usuário não fará
#          perguntas. Alterações não conflitantes serão propagadas;
#          conflitos serão ignorados.
batch=true
   
#          !Quando isso é definido como verdadeiro, o Unison solicitará uma confirmação extra
#          se parecer que toda a réplica foi
#          deletada, antes de propagar a alteração. Se a flag de batch também estiver
#          definida, a sincronização será abortada. Quando a preferência de caminho
#          é usada, a mesma confirmação será solicitada para
#          caminhos de nível superior. (No momento, essa flag só afeta a
#          interface de usuário de texto.) Veja também a preferência de ponto de montagem.
confirmbigdel=true
   
#          Quando essa preferência é definida como verdadeira, o Unison usará o
#          tempo de modificação e o comprimento de um arquivo como um `número de inode
#          pseudo' ao escanear réplicas para atualizações, em vez de ler
#          o conteúdo completo de cada arquivo. No Windows, isso pode fazer
#          com que o Unison perca a propagação de uma atualização se o tempo de modificação
#          e o comprimento do arquivo não forem alterados pela atualização.
#          No entanto, o Unison nunca sobrescreverá tal atualização com uma
#          alteração da outra réplica, uma vez que sempre faz uma verificação segura
#          para atualizações logo antes de propagar uma alteração. Assim, é
#          razoável usar essa opção no Windows na maior parte do tempo
#          e ocasionalmente executar o Unison uma vez com fastcheck definido como falso,
#          se você estiver preocupado que o Unison possa ter negligenciado uma atualização.
#          O valor padrão da preferência é auto, que faz
#          o Unison usar verificação rápida em réplicas Unix (onde é seguro)
#          e verificação lenta em réplicas Windows. Para compatibilidade
#          retroativa, sim, não e padrão podem ser usados no lugar de
#          verdadeiro, falso e auto. Veja a seção "Verificação Rápida" para mais
#          informações.
fastcheck=true

#          Quando essa flag é definida como verdadeira, os atributos de grupo dos
#          arquivos são sincronizados. Se os nomes dos grupos ou os identificadores de grupo
#          são sincronizados depende da preferência numerids.
group=true
   
#          Quando essa flag é definida como verdadeira, os atributos do proprietário dos
#          arquivos são sincronizados. Se os nomes dos proprietários ou os identificadores dos proprietários
#          são sincronizados depende da preferência
#          extttnumerids.
owner=true
   
#          Incluir a preferência -prefer root faz com que o Unison sempre
#          resolva conflitos a favor do root, em vez de pedir
#          orientação ao usuário. (A sintaxe de root é a mesma que para
#          a preferência root, além dos valores especiais newer e older.)
#          Esta preferência é substituída pela preferência preferpartial.
#          Esta preferência deve ser usada apenas se você tiver certeza de que sabe
#          o que está fazendo!
prefer=newer
   
#          Quando essa preferência é definida como verdadeira, a interface de usuário
#          textual não imprimirá nada, exceto em caso de erros.
#          Definir silent como verdadeiro automaticamente define a preferência de batch
#          como verdadeira.
silent=true
   
#          Quando essa flag é definida como verdadeira, os tempos de modificação de arquivos (mas não
#          os modtimes de diretórios) são propagados.
times=false  
  
#          Quando essa flag é definida, o Unison registrará todas as alterações nos sistemas de arquivos em um arquivo.  
log=false  
  
#          Quando essa flag é definida como verdadeira, grupos e usuários são sincronizados numericamente, em vez de por nome.  
#          O uid especial 0 e o grupo especial 0 nunca são mapeados via nomes de usuário/grupo, mesmo que essa  
#          preferência não esteja definida.  
numericids=true

Queremos automatizar a sincronização, então criamos um pequeno script e criamos um cronjob no server1:

mkdir /root/scripts  
vi /root/scripts/unison.sh

e adicione o seguinte conteúdo:

#!/bin/sh  
lockdir=/tmp  
UNISON=/usr/bin/unison  
LOGGER=/usr/bin/logger  
  
if [ ! -f /$lockdir/unison ]; then  
        touch $lockdir/unison  
  
        $UNISON -testserver web  
        rc=$?  
        if [[ $rc != 0 ]] ; then  
                echo "error"  
                $LOGGER -d -t unison "web - erro ao conectar remoto"  
        else  
                $UNISON web  
        fi  
  
        rm $lockdir/unison  
else  
        $LOGGER -d -t unison "unison já está em execução"  
fi

Torne o script executável:

chmod 700 /root/scripts/unison.sh

E execute a primeira sincronização. Para obter alguma saída durante a sincronização, defina silent = false em /root/.unsion/web.prf. Depois, inicie o unison:

/root/scripts/unison.sh

Finalmente, criamos o cronjob:

crontab -e
# unison  
*  * * * *  /root/scripts/unison.sh > /dev/null
Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.