Pour sauvegarder l'ensemble du contenu important de mon poste de travail, j'utilise un disque dur externe. C'est une méthode abordable qui respecte un des principes d'une bonne sauvegarde: être hors-ligne. Pour transférer mes fichiers vers ce disque, j'utilise un logiciel en ligne de commande qui fait exactement ça, des copies. C'est rsync (pour Remote Sync). Il est disponible sur macOS et sur GNU/Linux sans installation additionnelle.
### Installation sur Windows
Sur Windows, si vous avez installé MSYS2 que j'ai présenté au chapitre 1, alors pour obtenir rsync, il suffit de l'installer avec la commande suivante:
Note: Dans MSYS2, les répertoires sont représentés à la manière de Linux. Donc, le disque `C:\` se situe plutôt dans `/c/`
### La seule commande à retenir
Comme la majorité des logiciels provenant du monde GNU/Linux, rsync possède de nombreuses options. Cependant pour notre besoin, une seule commande est à retenir. Elle s'écrit comme suit:
-`-av` signifie archive verbose. C'est à dire que nous effectuons une archive et que nous voulons que le logiciel affiche toutes les opérations effectuées.
-`--progress` signifie d'afficher l'état d'avancement de la synchronisation.
-`--delete` signifie de supprimer les fichiers sur la destination qui n'existent plus sur la source. Ceci nous empêche de conserver de vieux fichiers qui ont été supprimé depuis la dernière sauvegarde. Si vous effectuez une sauvegarde automatisée, je vous conseille de supprimer cette option et de refaire une exécution manuelle de temps en temps, en prenant soin de tester l'exécution comme suit.
### Tester avant d'exécuter
rsync est un outil puissant et rapide qui ne pardonne pas les erreurs. Un conseil d'ami: toujours tester ses commandes rsync avec une exécution d'essai via l'option --dry-run, que l'on ajoute à la commande.
sent 391,414,597 bytes received 16,270 bytes 46,050,690.24 bytes/sec
total size is 391,253,238 speedup is 1.00
```
Afin de valider que la sauvegarde est bien réussie, il suffit d'exécuter à nouveau la commande. Si aucun fichier n'est synchronisé, alors c'est le cas !
## Projets en cours et contenu: Nextcloud
Pour garder des copies de sauvegarde de tous mes projets en cours et de mes contenus pour le web, j'utilise Nextcloud, qui est installé sur mon serveur en autohébergement.
De plus, le serveur permet de gérer les versions multiples des fichiers. Ce qui permet de réparer les erreurs de manipulation en plus de me protéger contre les incidents matériels.
J'ajoute à cela le fait que mon répertoire local de Nextcloud est aussi sauvegardé sur mon disque externe avec rsync, tel que je l'ai présenté précédemment.
## Code et fichiers texte: git
Les fichiers qui changent rapidement, tel que le code, doivent avoir leur propre mécanisme de sauvegarde qui permet des retours arrières illimités, ainsi qu'une gestion des versions. Pour ce faire, on utilise un système qui est maintenant omniprésent chez les développeurs: git.
Ce logiciel fonctionne de manière autonome, mais peut être utilisé comme mécanisme de sauvegarde en mode client et serveur. Du côté serveur, les services GitHub et GitLab sont les plus populaires. Mais, si comme moi vous êtes tentés par l'autohébergement, je recommande le logiciel [Gitea](https://gitea.io).
Les données qui sont communiquées à travers Git sont chiffrées et signées. Donc à chaque fois qu'une transaction a lieu entre un client et un serveur, il y a une certitude de l'intégrité des données. Git est donc en soi un système de sauvegarde très performant.
![Création d'un répertoire géré avec git](git_nouveau_repertoire.png)
## Serveurs et site web: Borg
[Borg](https://www.borgbackup.org/) est un logiciel de gestion de sauvegarde qui est spécialisé dans la sauvegarde avec cryptographie. Si vous choisissez de sauvegarder vos données sur un service infonuagique, il est **très fortement recommandé** de crypter vos données avant l'envoi.
Borg est basé sur rsync et offre des fonctionnalités spécifiques tel que la compression et la gestion des versions de sauvegardes. De ce fait, il est le candidat tout indiqué pour faire des sauvegardes automatisées, sécuritaires et sans entretien.