Instalación · 4 min read · Nov 17, 2025
Instalación de un clúster web, de correo electrónico y de base de datos MySQL en Debian 8.4 Jessie con ISPConfig 3.1 - Página 4
** 7 Instalar Unison
A continuación, instalamos Unison. Unison se utiliza para sincronizar el directorio /var/www entre server1 y server2.
Instala unison en server1 y server2 con
apt-get install unisonAhora instalamos un archivo de configuración de unison en server1:
Crea un nuevo archivo /root/.unison/web:
mkdir /root/.unison
vi /root/.unison/web.prf… y agrega el siguiente contenido:
# Raíces de la sincronización
root = /var/www
root = ssh://192.168.0.106//var/www
# Rutas a sincronizar
#path = www
#path = vmail
# Algunas expresiones regulares que especifican nombres y rutas a ignorar
#ignore = Path stats ## ignora /var/www/stats
#ignore = Path stats/* ## ignora /var/www/stats/*
#ignore = Path */stats ## ignora /var/www/somedir/stats, pero no /var/www/a/b/c/stats
#ignore = Name *stats ## ignora todos los archivos/directorios que terminan con "stats"
#ignore = Name stats* ## ignora todos los archivos/directorios que comienzan con "stats"
#ignore = Name *.tmp ## ignora todos los archivos con la extensión .tmp
ignore = Name sess_*
ignore = Name *access.log*
ignore = Name error.log
ignore = Name webalizer.conf
# Cuando se establece en verdadero, esta bandera hace que la interfaz de usuario omita
# preguntar por confirmaciones en cambios no conflictivos. (Más
# precisamente, cuando la interfaz de usuario ha terminado de establecer la
# dirección de propagación para una entrada y está a punto de pasar a la
# siguiente, omitirá todas las entradas no conflictivas y pasará
# directamente al siguiente conflicto.)
auto=true
# Cuando esto se establece en verdadero, la interfaz de usuario no hará ninguna
# pregunta en absoluto. Los cambios no conflictivos se propagarán;
# los conflictos se omitirán.
batch=true
# !Cuando esto se establece en verdadero, Unison solicitará una confirmación extra
# si parece que toda la réplica ha sido
# eliminada, antes de propagar el cambio. Si la bandera de lote también está
# establecida, la sincronización se abortará. Cuando se utiliza la
# preferencia de ruta, se solicitará la misma confirmación para
# rutas de nivel superior. (En este momento, esta bandera solo afecta a la
# interfaz de usuario de texto.) Consulta también la preferencia de punto de montaje.
confirmbigdel=true
# Cuando esta preferencia se establece en verdadero, Unison utilizará el
# tiempo de modificación y la longitud de un archivo como un `número de inode
# pseudo' al escanear réplicas en busca de actualizaciones, en lugar de leer
# el contenido completo de cada archivo. En Windows, esto puede causar
# que Unison pase por alto la propagación de una actualización si el tiempo de
# modificación y la longitud del archivo no cambian con la actualización.
# Sin embargo, Unison nunca sobrescribirá tal actualización con un
# cambio de la otra réplica, ya que siempre realiza una verificación segura
# de actualizaciones justo antes de propagar un cambio. Por lo tanto, es
# razonable utilizar este interruptor en Windows la mayor parte del tiempo
# y ocasionalmente ejecutar Unison una vez con fastcheck establecido en falso,
# si te preocupa que Unison haya pasado por alto una actualización.
# El valor predeterminado de la preferencia es auto, lo que hace que
# Unison utilice una verificación rápida en réplicas de Unix (donde es seguro)
# y una verificación lenta en réplicas de Windows. Para compatibilidad
# hacia atrás, sí, no y predeterminado se pueden usar en lugar de
# verdadero, falso y automático. Consulta la sección "Verificación Rápida" para más
# información.
fastcheck=true
# Cuando esta bandera se establece en verdadero, los atributos de grupo de los
# archivos se sincronizan. Si se sincronizan los nombres de grupo o los
# identificadores de grupo depende de la preferencia numerids.
group=true
# Cuando esta bandera se establece en verdadero, los atributos de propietario de los
# archivos se sincronizan. Si se sincronizan los nombres de propietario o los
# identificadores de propietario depende de la preferencia
# extttnumerids.
owner=true
# Incluir la preferencia -prefer root hace que Unison siempre
# resuelva conflictos a favor de root, en lugar de pedir
# orientación al usuario. (La sintaxis de root es la misma que para
# la preferencia root, más los valores especiales newer y older.)
# Esta preferencia es anulada por la preferencia preferpartial.
# ¡Esta preferencia debe usarse solo si estás seguro de saber
# lo que estás haciendo!
prefer=newer
# Cuando esta preferencia se establece en verdadero, la interfaz de usuario
# de texto no imprimirá nada en absoluto, excepto en caso de errores.
# Establecer silent en verdadero automáticamente establece la preferencia de lote
# en verdadero.
silent=true
# Cuando esta bandera se establece en verdadero, los tiempos de modificación de archivos
# (pero no los tiempos de modificación de directorios) se propagan.
times=false
# Cuando esta bandera se establece, Unison registrará todos los cambios en los sistemas de archivos en un archivo.
log=false
# Cuando esta bandera se establece en verdadero, grupos y usuarios se sincronizan numéricamente, en lugar de por nombre.
# El uid especial 0 y el grupo especial 0 nunca se mapean a través de nombres de usuario/grupo incluso si esta
# preferencia no está establecida.
numericids=trueQueremos automatizar la sincronización, así que creamos un pequeño script y creamos un cronjob en server1:
mkdir /root/scripts
vi /root/scripts/unison.shy agrega el siguiente contenido:
#!/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 - error conectando remoto"
else
$UNISON web
fi
rm $lockdir/unison
else
$LOGGER -d -t unison "unison ya está en ejecución"
fihaz que el script sea ejecutable:
chmod 700 /root/scripts/unison.shY ejecuta la primera sincronización. Para obtener algo de salida durante la sincronización, establece silent = false en /root/.unsion/web.prf. Después, inicia unison:
/root/scripts/unison.shFinalmente, creamos el cronjob:
crontab -e# unison
* * * * * /root/scripts/unison.sh > /dev/nullRecibe nuevas publicaciones en tu bandeja de entrada.
No spam. Cancela la suscripción en cualquier momento.