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 unisonAgora, 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=trueQueremos automatizar a sincronização, então criamos um pequeno script e criamos um cronjob no server1:
mkdir /root/scripts
vi /root/scripts/unison.she 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"
fiTorne o script executável:
chmod 700 /root/scripts/unison.shE 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.shFinalmente, criamos o cronjob:
crontab -e# unison
* * * * * /root/scripts/unison.sh > /dev/nullReceba novas postagens na sua caixa de entrada
Sem spam. Cancele a assinatura a qualquer momento.