Synchroniser vos ordinateurs

De ArchwikiFR


Gardez votre ordinateur portable synchronisé

Depuis que j'ai acquis un ordinateur portable, je me suis mis en quête d'une solution pour garder les données du portable synchronisées avec mon ordinateur de bureau, et vice versa.

Je ne peux tout simplement pas copier une image du système pour de nombreuses raisons. Certains fichiers doivent être différents, et parfois il y a une mise à jour sur un ordinateur, parfois sur l'autre.

Solutions

Syncthing

URL : Syncthing

Ceci est ma solution préférée, et je l'adore. J'ai testé plusieurs outils, mais celui-là les bat tous. Il est simple à configurer tout en restant flexible et sécurisé.

Disponible dans les dépôts.

Note : Logiciel un peu capricieux, requiert la même version majeure sur les différents nœuds : par exemple 0.12.X pour tous

L'idée de syncthing est de faire de la synchronisation pair à pair en utilisant un protocole proche de celui du BitTorrent. Chaque nœud peut gérer plusieurs dossiers qu'il partage spécifiquement avec certains pairs. Chaque pair est identifié par une clef cryptographique unique.

Le tout se configure dans une interface Web très simple.

Lancer le service syncthing@<user>.service ou le service utilisateur syncthing.service en tant qu'utilisateur.

Ensuite, naviguez vers http://127.0.0.1:8384 pour configurer syncthing.

Vous pourrez alors ajouter un dossier à synchroniser ou ajouter un pair.

En attendant plus de détails dans ce wiki, je vous invite à lire la documentation officielle (http://docs.syncthing.net/) et le wiki anglophone (plus complet : https://wiki.archlinux.org/index.php/Syncthing).

Unison

URL: Unison

Note : Logiciel extrêmement capricieux, qui requiert un client et un serveur qui ont exactement la même version, compilées contre exactement la même version de OCaml (pratiquement impossible à déployer dans un parc hétérogène), cf. https://groups.yahoo.com/neo/groups/unison-users/conversations/topics/11439

http://caml.inria.fr/about/successes-images/unison.jpg

Vous devez avoir SSH et Unison installés sur les deux ordinateurs. Et alors, avec quelques commandes simples, vous pouvez garder synchronisés des répertoires. Avec l'outil graphique, vous pouvez choisir quels fichiers vous désirez garder synchronisés ou non. Vous pouvez également résoudre certains conflits.

Note : L'outil graphique possède quelques bugs ; il sera moins hasardeux de modifier directement les fichiers .prf

J'utilise les scripts suivants:

~/.unison/electra.prf (Mon ordinateur portable)

root = /home/hugo
root = ssh://pyros//home/hugo
follow = Path school
include common

~/.unison/pyros.prf (Mon ordinateur de bureau)

root = /home/hugo
root = ssh://electra//home/hugo
follow = Path school
include common

~/.unison/common

ignore = Regex .*(cache|Cache|te?mp|history|thumbnails).*
ignore = Name sylpheed.log*
ignore = Name unison.log
ignore = Name .ICEauthority
ignore = Name .Xauthority
ignore = Path {.songinfo,.radinfo}
ignore = Path .adesklets
ignore = Path .Azureus
ignore = Path .forward
ignore = Path adesklets
ignore = Path .ethereal
ignore = Path .sheep
ignore = Path .xinitrc
ignore = Path .config
ignore = Path .xscreensaver
ignore = Path .xawtv
ignore = Path .radio
ignore = Path .forward
ignore = Path .dc++
ignore = Path .quodlibet
ignore = Path .tvtime
ignore = Path .config/graveman
ignore = Path .xmodmap
ignore = Path .java
ignore = Path .tvlist*
ignore = Path .thumbnails
ignore = Path .ssh
ignore = Path .viminfo
ignore = Path .vim/tmp
ignore = Path Desktop
ignore = Path .wine*
ignore = Path motion
ignore = Path src/ufobot/test_pipe
ignore = Path tmp
ignore = Path local
ignore = Path books
ignore = Path .mozilla/firefox/*/Cache*
ignore = Path .liferea/cache
ignore = Path .liferea/mozilla/liferea/Cache
ignore = Path .sylpheed-*/*.bak
ignore = Path .sylpheed-*/folderlist.xml*
ignore = Path .liferea/new_subscription
ignore = Path .mozilla/firefox/pluginreg.dat
ignore = Path .mozilla/firefox/*/lock
ignore = Path .mozilla/firefox/*/XUL.mfasl
ignore = Path .mozilla/firefox/*/xpti.dat
ignore = Path .mozilla/firefox/*/cookies.txt
ignore = Path .xbindkeysrc
ignore = Path .unison/ar*
ignore = Path .gaim/icons
ignore = Path .gaim/blist.xml
ignore = Path .asoundrc
ignore = Path .maillog
ignore = Path .openoffice2/.lock

Comme vous pouvez le constater, j'utilise deux profils différents, un lorsque je lance Unison depuis l'ordinateur portable, et l'autre lorsque je lance le programme depuis l'ordinateur de bureau. J'ai mis ces fichiers comme exemples, ils ne sont nullement essentiels.

J'ai également fait des alias bash, afin d'exécuter la synchronisation rapidement:

alias unisync="unison-gtk2 electra -contactquietly -logfile /dev/null"

Signifiant que j'utilise le profil 'electra' lorsque j'exécute le logiciel depuis mon ordinateur portable.

J'ai également une ligne dans ~/Destkop/autostart pour automatiser le processus lorsque je suis chez moi et que je désire syncroniser l'ordinateur portable:

xterm -e 'ping -q -W 2 -c 2 pyros && unison-gtk2 electra -contactquietly -logfile /dev/null && gxmessage -buttons no:0,yes:1  Syncing done. Shutdown pyros? || ssh pyros sudo halt' &


Mise en garde

- Vous pouvez également utiliser ce programme avec un partage réseau nfs, mais je le trouve plus lent. En utilisant la solution ssh il demande à l'autre partie (ordinateur) de vérifier les mise-à-jours, et donc aucune ressource réseau n'est requise dans cette tâche de synchronisation.

- Si vous utilisez ssh sur un port autre que le 22, 1022 par exemple, mettez ceci dans votre fichier de configuration: sshargs = -p 1022

- Si vous utilisez des liens symboliques et que vous voulez les synchroniser sur un système de fichier vfat (tel qu'une clé usb), Unison ne les acceptera pas et générera des erreurs. Vous ne pouvez simplement dire à Unison que vous n'êtes pas intéressé par les liens symboliques, vous devez tous les indiquer. Pour les lister, vous pouvez utiliser ceci: find ~/dossier -type |.

rsync

Rsync

Wiki à traduire

rdiff-backup

J'utilisais cet outil avec le script de sauvegarde suivant:

#!/bin/sh

mount /bak
#mount /boot
mount /mnt/win

rdiff-backup \
   --exclude-regexp 'cache$' \
   --exclude-regexp '(?i)/te?mp$' \
   --exclude /mnt \
   --exclude /vol \
   --exclude /bak \
   --exclude /usr/media \
   --exclude /usr/media/misc \
   --exclude /usr/lib \
   --exclude /tmp \
   --exclude /var/dl \
   --exclude /var/spool \
   --exclude /var/cache \
   --exclude /proc \
   --exclude /dev \
   --exclude /sys \
/ /bak/sys

echo "----------------------------------------"
echo " * Liste incrémentielle des fichiers à sauvegarder"
echo "----------------------------------------"
rdiff-backup --list-increments /bak/sys

echo ""
echo "----------------------------------------"
echo " * suppression des sauvegardes de plus de 5 semaines"
echo "----------------------------------------"
rdiff-backup --force --remove-older-than 5W /bak/sys

##Forcer est nécessaire car:
#Fatal Error: Found 2 relevant increments, dated:
#Sat Apr 10 12:39:24 2004
#Sat Apr 17 04:15:01 2004
#If you want to delete multiple increments in this way, use the --force.

echo ""
echo "----------------------------------------"
echo " * Utilisation du disque après la sauvegarde:"
echo "----------------------------------------"
df -h

umount /bak
#umount /boot
umount /mnt/win

Dropbox

J'ai testé Dropbox pour synchroniser mes machine de bureau et netbook début 2015. Avec comme résultat des milliers de doublons de répertoires et de fichiers après des heures de synchronisation (sur le LAN)... La même synchronisation initiale avec rsync via ssh prend 30 minutes.

Dropbox détruit les liens symboliques, et les remplace par les données complètes des dossiers et fichiers vers lesquels ils pointent. C'est voulu et très bien pour l'utilisation prévue pour cet outil (avoir les données dans le cloud).

Il est donc pas adapté pour synchroniser 2 machines, sauf pour des répertoires n'utilisant aucun symlink.

Voir aussi