Synchroniser des répertoires en bidirectionnel avec Osync v1.2

Publié le 29 mars 2020 - Modifié le 09 mai 2021 | Classé dans : Configuration, Outillage, Intervention délicate qui demande beaucoup d'attention...
Aucun commentaire | Mots clés : DokuWiki, fichier, PluXml, synchro, Osync

Je souhaite faire en sorte que le répertoire local Documents, présent sur mon ordi, soit synchronisé avec le répertoire distant Documents, présent sur un hébergement web. Et bidirectionel, c'est à dire qu'une modification d'un fichier dans le répertoire local soit répercutée sur le répertoire distant, et vice versa. Si un même fichier à été modifié de façon différente de part et d'autre, on garde le dernier modifié et on sauvegarde le plus ancien.

Donc Osync c'est ici : https://github.com/deajan/osync

Pour voir une config qui fonctionne ci-après...

Fichier de config pour un dokuwiki :

# grep -v ^# /etc/osync/monsite.conf | grep -v ^$ | grep -v "" | grep -v =$
INSTANCE_ID="sync_monsite"
INITIATOR_SYNC_DIR="/var/www/html/monsite"
TARGET_SYNC_DIR="ssh://monsite@ssh-monsite.alwaysdata.net//home/glutch/sites/80hg.org/monsite/htdocs"
SSH_RSA_PRIVATE_KEY="/home/machin/.ssh/monsite"
CREATE_DIRS=no
MINIMUM_SPACE=10240
BANDWIDTH=0
SUDO_EXEC=no
RSYNC_EXECUTABLE=rsync
RSYNC_PATTERN_FIRST=include
PATH_SEPARATOR_CHAR=";"
SSH_COMPRESSION=yes
SSH_IGNORE_KNOWN_HOSTS=no
REMOTE_HOST_PING=no
REMOTE_3RD_PARTY_HOSTS="www.kernel.org www.alwaysdata.com"
PRESERVE_PERMISSIONS=no
PRESERVE_OWNER=no
PRESERVE_GROUP=no
PRESERVE_EXECUTABILITY=yes
PRESERVE_ACL=no
PRESERVE_XATTR=no
COPY_SYMLINKS=no
KEEP_DIRLINKS=no
PRESERVE_HARDLINKS=no
CHECKSUM=no
RSYNC_COMPRESS=no
SOFT_MAX_EXEC_TIME=7200
HARD_MAX_EXEC_TIME=10600
KEEP_LOGGING=1801
MIN_WAIT=60
MAX_WAIT=7200
CONFLICT_BACKUP=yes
CONFLICT_BACKUP_MULTIPLE=yes
CONFLICT_BACKUP_DAYS=0
CONFLICT_PREVALANCE=initiator
SOFT_DELETE=yes
SOFT_DELETE_DAYS=0
RESUME_SYNC=yes
RESUME_TRY=2
FORCE_STRANGER_LOCK_RESUME=no
PARTIAL=no
DELTA_COPIES=yes
DESTINATION_MAILS="your@alert.tld"
SENDER_MAIL="alert@your.system.tld"
SMTP_SERVER=smtp.your.isp.tld
SMTP_PORT=25
SMTP_ENCRYPTION=none
LOCAL_RUN_AFTER_CMD="chown -R www-data.www-data /var/www/html/monsite"
MAX_EXEC_TIME_PER_CMD_BEFORE=0
MAX_EXEC_TIME_PER_CMD_AFTER=0
STOP_ON_CMD_ERROR=yes
RUN_AFTER_CMD_ON_ERROR=no

Puis en root :

# osync.sh /etc/osync/monsite.conf --verbose

Quelques détails supplémentaires :

- Pour ne synchroniser que certains sous-répertoires :

## Rsync exclude / include order (the option set here will be set first, eg: include will make include then exclude patterns)
RSYNC_PATTERN_FIRST=include
#RSYNC_PATTERN_FIRST=exclude

## List of files / directories to incldue / exclude from sync on both sides (see rsync patterns, wildcards work).
## Paths are relative to sync dirs. List elements are separated by a semicolon.
RSYNC_INCLUDE_PATTERN="/;/Archives***;/atelier***;/Documents***"
RSYNC_EXCLUDE_PATTERN="*"
#RSYNC_EXCLUDE_PATTERN="tmp;archives"

- Pour faire tourner une instance osync automatiquement dès qu'un fichier est modifié :

On systemd systems, syntax is :

# systemctl start osync-srv@monsite.conf
# systemctl enable osync-srv@monsite.conf

- Pour un PluXml en local avec Apache 2.4 + PHP 7.3, après l'initialisation de osync, il est nécessaire de passer à OFF la réécriture d'URL dans la config de PluXml et de désactiver le plugin MyBetterUrl, puis dans /etc/osync/swip.conf, d'exclure de la synchro les fichiers :

RSYNC_EXCLUDE_PATTERN="parametres.xml;plugins.xml"

- Pour ne pas envoyer d'email avec les logs des synchro, commenter dans /etc/osync/monste.conf :

#DESTINATION_MAILS="your@alert.tld"

Mais attention, les réglages ci-dessus méritent d'être mieux compris et affinés car j'ai observé des effets indésirables sur les droits des fichiers et sur la réappartition de fichiers supprimés...

A part ça ça marche smiley

Source : https://github.com/deajan/osync

Écrire un commentaire

Quelle est la deuxième lettre du mot kmtae ?

Fil RSS des commentaires de cet article