Sous Debian, il existe un paquet inosync qui contient juste le minimum : le démon inosync, une page man et quelques fichiers d'exemple.
Bref tout est à faire !
Sur serveur_1.example.org :
Créer le répertoire /etc/inosync qui contiendra les fichiers de conf.
Éditez le ficher /etc/inosync/test.py
# directory that should be watched for changes wpath = "/home/test/" # exclude list for rsync rexcludes = [ ] # common remote path rpath = "/home/test/" # remote locations in rsync syntax rnodes = [ "serveur_2.example.org:" + rpath, ] # limit remote sync speed (in KB/s, 0 = no limit) #rspeed = 0 # event mask (only sync on these events) #emask = [ # "IN_CLOSE_WRITE", # "IN_CREATE", # "IN_DELETE", # "IN_MOVED_FROM", # "IN_MOVED_TO", #] # event delay in seconds (prevents huge amounts of syncs, but dicreases the # realtime side of things) # edelay = 10 # rsync log file for updates logfile = /var/log/inosync.log # rsync binary path rsync = "/usr/bin/rsync"
Ce fichier doit être adapté et déposé sur serveur_2.example.org.
Le script de démarrage permet d'avoir plusieurs fichiers de conf afin de surveiller plusieurs répertoires, un fichier de conf par répertoire.
/etc/init.d/inosync
#!/bin/bash ### BEGIN INIT INFO # Provides: inosync # Required-Start: $local_fs $network $syslog $named # Required-Stop: $local_fs $network $syslog $named # Default-Start: 2 3 4 5 # Default-Stop: 0 1 6 ### END INIT INFO LOG=/var/log/inosync.log INOSYNC=/usr/bin/inosync case "$1" in start) if ls /var/run/inosync_* 2>/dev/null; then echo "Inosync en cours ..." exit 1 fi echo "Inosync start" rep=`ls /etc/inosync/*py 2> /dev/null` for r in $rep; do $INOSYNC -d -v -c $r pid=`pgrep -f -n '/usr/bin/inosync'` echo $pid > /var/run/inosync_`basename $r`.pid done ;; stop) echo "Inosync stop" kill=`ls /var/run/inosync*.pid 2>/dev/null` for k in $kill; do kill -15 `cat $k` rm -f $k done ;; restart) $0 stop sleep 1 $0 start ;; status) echo "Inosync status" kill=`ls /var/run/inosync*.pid 2>/dev/null` for k in $kill; do echo $k done ;; *) echo "Usage: $0 (start|stop|restart|status)" ;; esac
update-rc.d inosync defaults, afin de lancer le service au démarrage, et c'est bon.
Le service inosync ne synchronise que les fichiers dans le répertoire surveillé. Si un répertoire est créé, il n'est pas synchronisé sur la machine distante. Celà doit venir des options passées à rsync. Je n'ai pas trouvé de moyen, pour l'instant, de synchroniser les nouveaux répertoires.
Site officiel : https://github.com/hollow/inosync