rsync est sans doute le meilleur des outils de backup. Apprenez à l'utiliser sous Windows, grâce à une machine Debian tournant sous WSL
Accept reality and have a backup plan - Miley Cyrus
Je ne compte plus les fois où j'ai perdu des fichiers parce que j'étais trop paresseux pour mettre en place un backup digne de ce nom. Et chaque fois, je me disais que ça n'arriverait plus ...
Et un jour, j'ai trouvé la solution pour les ordinateurs mac et linux: rsync, un outil permettant de synchroniser le contenu de deux répertoires.
Si vous êtes là, c'est parce que vous cherchez désespérément une solution pour faire tourner rsync sous Windows. Donc vous savez probablement que rsync est :
Le seul désavantage de cet outil, c'est qu'il n'est pas disponible sous Windows. Il y avait bien quelques solutions, comme faire tourner rsync sous cygwin. Mais j'ai eu des problèmes avec ça, comme la gestion des accents.
Une autre solution est d'installer une machine virtuelle Linux complète sur l'hôte windows, mais c'est vraiment un peu lourd, et un gâchis complet de temps et de ressources.
Heureusement, il est aujourd'hui possible de faire tourner une distribution Linux sous Windows 10 grâce à WSL (Windows Subsystem for Linux). Et, dans cette distribution, de faire tourner rsync.
Dans cet article, vous apprendrez à:
Pour cela, il vous faudra disposer d'un PC Windows 10 à jour.
WSL a été introduit avec Windows 10. Il permet aux développeurs de faire tourner un environnement GNU/Linux, incluant la plupart des outils de la ligne de commande, des utilitaires, et des applications, directement sous Windows. Et ce sans payer le coût d'une machine virtuelle.
WSL est vraiment simple, et bénéficie d'une excellente documentation Je ne souhaite pas la plagier, et je ne répéterai donc pas les instructions d'installation ici. Mais je vais quand même vous aider un peu à démarrer.
À un moment donné, il vous sera demandé d'activer WSL en ouvrant un powershell. Vous pouvez lancer le powershell en tapant la touche windows (démarrer), et en tapant
powershell
Un terminal s'ouvre. Pour activer WSL, vous devez faire tourner le powershell comme administrateur. Pour cela, tapez la ligne suivante dans votre terminal powershell :
Start-Process powershell -Verb runAs
Cela ouvre encore un autre powershell, où vous avez les droits d'administrateur. Dans celui-ci, vous pouvez suivre les instructions de Microsoft.
J'ai décidé d'installer la distribution Debian de Linux. Vous pouvez faire de même ou choisir Ubuntu si vous préférez. Si vous choisissez une autre distro, certaines des instructions ci-dessous ne marcheront probablement pas, mais je suppose que vous savez ce que vous faites (et notamment comment installer des packages dans votre distro favorite).
Aprèsl'initialisation de votre système Debian, nous pouvons nous lancer dans la configuration de rsync.
Pour installer rsync dans votre distribution Debian (ou Ubuntu), tapez :
sudo apt install rsync openssh-client
Maintenant, créez deux répertoires de test :
mkdir srcdir backup
Créez deux fichiers vides dans srcdir
, et listez le contenu de ce répertoire :
touch srcdir/file1 srcdir/file2
ls srcdir
Pour synchroniser les contenus de srcdir
et de backup
, faites :
rsync -av srcdir/ backup/
sending incremental file list
./
file1
file2
sent 176 bytes received 57 bytes 466.00 bytes/sec
total size is 0 speedup is 0.00
Enfin, listez le répertoire de destination, il contient les deux fichiers. Essayons de supprimer l'un de ces deux fichiers du répertoire source avant de relancer rsync :
rm srcdir/file2
rsync -av srcdir/ backup/
Nous voyons que backup/file2
existe toujours. Par défaut, rsync n'effacera rien. Pour l'autoriser à le faire, faites :
rsync -av --delete srcdir/ backup/
sending incremental file list
deleting file2
sent 82 bytes received 21 bytes 206.00 bytes/sec
total size is 0 speedup is 0.00
Vous devriez maintenant avoir suffisamment confiance en cet outil pour l'utiliser sur vos données. Donc c'est parti !
Mise en garde : avant de suivre les instructions ci-dessous, je vous conseille de faire un backup de vos données!
Bon je rigole ;-)
Je suppose que vous désirez faire une sauvegarde vers un disque externe. Donc commencez par connecter le disque à votre PC. Vous devriez voir le disque apparaître dans l'explorateur Windows.
Dans le terminal Linux, les disques montés sont dans /mnt
. Listez-les :
ls /mnt
c d f i
Ces lettres sont celles qui ont été assignées aux partitions de mon disque par Windows. C: est ma partition système.
Vous ne verrez probablement pas les partitions de votre disque externe ici. Le disque a été monté par Windows, mais pas par la machine Linux. Pour le monter, faites la chose suivante :
sudo mkdir /mnt/j
sudo mount -t drvfs J: /mnt/j
Vous pouvez maintenant voir le contenu de cet partition avec
ls /mnt/j
et vous pouvez aller à la racine de cette partition avec
cd /mnt/j
Sous Linux, on utilise cd
pour changer de répertoire et ls
pour lister le contenu d'un répertoire.
Supposons que vous souhaitez faire un backup de C:\data\
vers J:\
Exécutez simplement la commande suivante. L'option -a
est toujours nécessaire (marrant pour une option). C'est celle que tout le monde ou presque utilise, et vous pouvez vous référer au manuel de rsync pour plus d'informations. L'option -v
vous permet d'obtenir un log détaillé. Et l'option -n
est pour le dry run : rien ne se passera, nous sommes en train de tester. Enfin, j'utilise sudo car j'ai des erreurs de permission dans le cas contraire.
sudo rsync -avn /mnt/c/data/ /mnt/j/
Étudiez le log attentivement. Si tout vous semble correct, enlevez l'option -n
.
Dans cet article, vous avez appris comment :
Chaque fois que vous souhaitez faire un backup, vous devrez lancer la machine Debian et la commande rsync.
Il doit être possible d'automatiser ça. Sur une vraie machine Linux, j'utiliserais la crontab pour lancer rsync périodiquement. Mais sous Windows, je ne sais pas comment automatiser le lancement de la machine Debian.
N'hésitez pas à me donner votre avis dans les commentaires ! Je répondrai à toutes les questions.
Et si vous avez aimé cet article, vous pouvez souscrire à ma newsletter pour être prévenu lorsque j'en sortirai un nouveau. Pas plus d'un mail par semaine, promis!
Rejoignez ma mailing list pour plus de posts et du contenu exclusif: