Synchroniser vos ordinateurs

De ArchwikiFR

Sommaire

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

Unison

URL: Unison

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

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é.

Vous devez avoir SSH et Unison installés sur les deux ordinateurs. Et alors, avec quelques commandes simples, vous pouvez garder synchronisé 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.

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

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
Outils personnels