Installation serveur · 5 min read · Nov 17, 2025
Installation d'un cluster Web, Email et base de données MySQL sur Debian 8.4 Jessie avec ISPConfig 3.1 - Page 4
** 7 Installer Unison
Ensuite, nous installons Unison. Unison est utilisé pour synchroniser le répertoire /var/www entre server1 et server2.
Installez unison sur server1 et server2 avec
apt-get install unisonMaintenant, nous installons un fichier de configuration unison sur server1 :
Créez un nouveau fichier /root/.unison/web :
mkdir /root/.unison
vi /root/.unison/web.prf… et ajoutez le contenu suivant :
# Racines de la synchronisation
root = /var/www
root = ssh://192.168.0.106//var/www
# Chemins à synchroniser
#path = www
#path = vmail
# Quelques regexps spécifiant les noms et chemins à ignorer
#ignore = Path stats ## ignore /var/www/stats
#ignore = Path stats/* ## ignore /var/www/stats/*
#ignore = Path */stats ## ignore /var/www/somedir/stats, mais pas /var/www/a/b/c/stats
#ignore = Name *stats ## ignore tous les fichiers/répertoires qui se terminent par "stats"
#ignore = Name stats* ## ignore tous les fichiers/répertoires qui commencent par "stats"
#ignore = Name *.tmp ## ignore tous les fichiers avec l'extension .tmp
ignore = Name sess_*
ignore = Name *access.log*
ignore = Name error.log
ignore = Name webalizer.conf
# Lorsque cette option est définie sur true, ce drapeau fait que l'interface utilisateur saute
# la demande de confirmations sur les changements non conflictuels. (Plus
# précisément, lorsque l'interface utilisateur a terminé de définir la
# direction de propagation pour une entrée et est sur le point de passer à la
# suivante, elle sautera toutes les entrées non conflictuelles et ira
# directement au prochain conflit.)
auto=true
# Lorsque cela est défini sur true, l'interface utilisateur ne posera aucune
# question. Les changements non conflictuels seront propagés ;
# les conflits seront ignorés.
batch=true
# !Lorsque cela est défini sur true, Unison demandera une confirmation supplémentaire
# s'il semble que l'ensemble de la réplique a été
# supprimé, avant de propager le changement. Si le drapeau batch est
# également défini, la synchronisation sera interrompue. Lorsque la préférence
# de chemin est utilisée, la même confirmation sera demandée pour
# les chemins de premier niveau. (Pour le moment, ce drapeau n'affecte que
# l'interface utilisateur texte.) Voir aussi la préférence de point de montage.
confirmbigdel=true
# Lorsque cette préférence est définie sur true, Unison utilisera le
# temps de modification et la longueur d'un fichier comme un `numéro d'inode
# pseudo' lors de la recherche de mises à jour dans les répliques, au lieu de lire
# le contenu complet de chaque fichier. Sous Windows, cela peut amener
# Unison à manquer la propagation d'une mise à jour si le temps de modification
# et la longueur du fichier n'ont pas changé avec la mise à jour.
# Cependant, Unison ne remplacera jamais une telle mise à jour par un
# changement de l'autre réplique, car il effectue toujours une vérification sécurisée
# des mises à jour juste avant de propager un changement. Ainsi, il est
# raisonnable d'utiliser ce commutateur sous Windows la plupart du temps
# et de faire occasionnellement fonctionner Unison une fois avec fastcheck défini sur false,
# si vous craignez qu'Unison ait pu négliger une mise à jour.
# La valeur par défaut de la préférence est auto, ce qui fait
# qu'Unison utilise une vérification rapide sur les répliques Unix (où c'est sûr)
# et une vérification lente sur les répliques Windows. Pour la compatibilité
# ascendante, oui, non et par défaut peuvent être utilisés à la place de
# vrai, faux et auto. Voir la section "Vérification rapide" pour plus
# d'informations.
fastcheck=true
# Lorsque ce drapeau est défini sur true, les attributs de groupe des
# fichiers sont synchronisés. Que les noms de groupe ou les identifiants de groupe
# soient synchronisés dépend de la préférence numerids.
group=true
# Lorsque ce drapeau est défini sur true, les attributs de propriétaire des
# fichiers sont synchronisés. Que les noms de propriétaire ou les identifiants de propriétaire
# soient synchronisés dépend de la préférence
# extttnumerids.
owner=true
# Inclure la préférence -prefer root fait qu'Unison résout toujours
# les conflits en faveur de root, plutôt que de demander
# des conseils à l'utilisateur. (La syntaxe de root est la même que pour
# la préférence root, plus les valeurs spéciales newer et older.)
# Cette préférence est remplacée par la préférence preferpartial.
# Cette préférence ne doit être utilisée que si vous êtes sûr de savoir
# ce que vous faites !
prefer=newer
# Lorsque cette préférence est définie sur true, l'interface utilisateur
# textuelle n'imprimera rien du tout, sauf en cas d'erreurs.
# Définir silent sur true définit automatiquement la préférence batch
# sur true.
silent=true
# Lorsque ce drapeau est défini sur true, les temps de modification des fichiers (mais pas
# les temps de modification des répertoires) sont propagés.
times=false
# Lorsque ce drapeau est défini, Unison enregistrera tous les changements dans les systèmes de fichiers dans un fichier.
log=false
# Lorsque ce drapeau est défini sur true, les groupes et les utilisateurs sont synchronisés numériquement, plutôt que par nom.
# L'uid spécial 0 et le groupe spécial 0 ne sont jamais mappés via les noms d'utilisateur/groupe même si cette
# préférence n'est pas définie.
numericids=trueNous voulons automatiser la synchronisation, donc nous créons un petit script et créons un cronjob sur server1 :
mkdir /root/scripts
vi /root/scripts/unison.shet ajoutez le contenu suivant :
#!/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 "erreur"
$LOGGER -d -t unison "web - erreur de connexion à distance"
else
$UNISON web
fi
rm $lockdir/unison
else
$LOGGER -d -t unison "unison déjà en cours d'exécution"
firendez le script exécutable :
chmod 700 /root/scripts/unison.shEt exécutez la première synchronisation. Pour obtenir une sortie pendant la synchronisation, définissez silent = false dans /root/.unsion/web.prf. Ensuite, démarrez unison :
/root/scripts/unison.shEnfin, nous créons le cronjob :
crontab -e# unison
* * * * * /root/scripts/unison.sh > /dev/nullRecevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.