GNU/Linux: Synchroniser des répertoires en P2P avec BitTorrent Sync

logo-bittorrent-sync BitTorrent Labs a développé et expérimente un client de synchronisation de répertoires utilisant les technologies Peer-to-peer. Ce client est disponible pour Windows, Mac OS et GNU/Linux. Si l’installation pour les 2 première plateforme ne pose pas de difficulté particulière, l’installation sous GNU/Linux est un peu moins trivial. Les informations importantes et les liens de téléchargements du client sons disponibles à cette adresse: http://labs.bittorrent.com/experiments/sync/get-started.html

A la rédaction de ces quelques lignes, le client est en version alpha (1.0.116), mais il fait d’ores et déjà très bien son travail.

Passons maintenant à l’installation sous GNU/Linux. Utilisant une machine CentOS 6.2 64 bits, j’exécute mes commandes sous le compte root. Il ne faut donc pas oublier de faire un petit coup de sudo avant les commandes si la configuration du client se passe sur une machine debian.

Pour commencer, il faut télécharger le client correspondant à l’architecture de la machine (x86, x64, ARM,…). Décompresser ensuite l’archive.

# tar -xvzf ./btsync_x64.tar.gz

Un seul fichier est présent après la décompression : btsync. C’est lui qui va faire tout le travail. On peux l’exécuter directement, et dans ce cas, il sera autonome et devra être lancé manuellement à chaque redémarrage de la machine. Si l’on souhaite l’utiliser de cette manière, la configuration se passe par l’intermédiaire de la WebUI accessible à l’adresse http://IP_de _la_machine:8888/gui

Dans mon cas, je préfère qu’il se lance en mode daemon à chaque démarrage de ma machine. Voici ma méthode.

Déplacer le binaire « btsync » dans le répertoire /usr/bin

# mv ./btsync /usr/bin/

btsync peut s’appuyer sur un fichier de configuration au format JSON qu’il faut créer. Il est possible de créer directement un exemple de fichier de configuration grâce à btsync. On créer un répertoire /etc/btsync et on nomme ce fichier btsync.conf.

# mkdir /etc/btsync
# btsync --dump-sample-config > /etc/btsync/btsync.conf

Le fichier contient différents paramètres, dont un login et un mot de passe par défaut pour l’accès à la WebUI:

login : admin
password : password

J’ai créé un fichier de démarrage afin de permettre le démarrage du client BitTorrent Sync au démarrage de la machine. Il est disponible ici.

On place ce fichier dans le répertoire /etc/init.d et on donne les droits en exécution.

# cd /etc/init.d
# wget http://blog.coradi.fr/partage/btsync
# chmod +x /etc/init.d/btsync

Ce fichier démarre btsync avec le fichier de configuration précédemment généré et accepte les paramètres start, stop, restart et status.

On ajoute ensuite le script dans chkconfig afin de configurer le démarrage automatique. Attention, cette action n’est valable que sur les distribution Red Hat (CentOS, Fedora,…).

# chkconfig --add btsync

On peut ensuite vérifier les niveau de démarrage:

# chkconfig --list btsync
btsync          0:off   1:off   2:on    3:on    4:on    5:on    6:off

Sur des systèmes à base de Debian tel que Ubuntu, lancer la commande:

$ sudo update-rc.d btsync defaults

On voit que le client de synchronisation démarre automatiquement dans les niveau 2, 3, 4 et 5. Les plus couramment utilisés étant les niveau 3 (multi utilisateurs sans interface graphique) et 5 (multi utilisateurs avec interface graphique).

La configuration des répertoires partagés peut se faire en éditant le fichier de configuration /etc/btsync/btsync.conf ou par la webUI, dont voici un aperçu.

Clipboard01

ATTENTION : Les fichiers synchronisés auront à l’arrivé les droits de l’utilisateur qui exécute BitTorrent Sync. Pour changer cela, il faut donc changer le propriétaire de l’exécutable /usr/bin/btsync, ou peut être jouer avec sudo sous debian.