Christophe Casalegno

SxSync : synchronisation de fichiers distants en bash via rsync / ssh

SxSync

SxSync est un script Bash sous licence GPL permettant de synchroniser efficacement des fichiers ou répertoires via `rsync` en SSH.
Il prend en charge les exclusions, le logging, le mode dry-run, et permet des synchronisations **dans les deux sens** : vers ou depuis une machine distante (antesync et retrosync).

Fonctionnalités principales

– Synchronisation sécurisée avec `rsync` via SSH.
– Mode `antesync` (push) et `retrosync` (pull).
– Support des exclusions personnalisables (`exclude.txt` par défaut ou via variable).
– Journalisation automatique des opérations (`~/sxsync.log` ou personnalisable).
– Option `–dry-run` pour simuler une synchronisation sans transfert réel.
– Support de ports SSH personnalisés.
– Retour coloré sur statut OK/ERROR.

Utilisation

sxsync antesync <user> <ip> <local_dir> <remote_dir> <ssh_port> [--dry-run]
sxsync retrosync <user> <ip> <remote_dir> <local_dir> <ssh_port> [--dry-run]

Exemples :

Push vers un serveur distant :


sxsync antesync brain 192.168.1.100 /home/brain/ /srv/backup/ 65022

Pull depuis un serveur distant :


sxsync retrosync brain 192.168.1.100 /srv/backup/ /home/brain/ 65022

Dry-run pour vérifier ce qui serait synchronisé :


sxsync antesync brain 192.168.1.100 /home/brain/ /srv/backup/ 65022 --dry-run

Variables personnalisables

– EXCLUDE_FILE : liste des patterns à exclure (par défaut exclude.txt)
– SXSYNC_LOG : chemin du fichier log (par défaut ~/sxsync.log)

Todo list

– Générer un rapport HTML ou Markdown post-synchronisation.
– Ajouter une option `–no-delete` pour désactiver la suppression côté destination.
– Intégration d’un mode `–silent` (aucune sortie sauf erreurs critiques).
– Compatibilité explicite avec cron/systemd pour synchronisations planifiées.

Ressources

– Script : sxsync.sh


Christophe Casalegno
Vous pouvez me suivre sur : Telegram | Facebook | LinkedIn | X | YouTube | Twitch