# Sauvegarder ses données ## Sauvegarder son poste de travail : rsync Le contenu important de notre poste de travail est sauvegardé sur 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 nos fichiers vers ce disque, nous utilison 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 Puisque nous avons installé MSYS2 au chapitre 1, alors, il suffit de l'installer avec la commande suivante : ```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"} pacman -Syu rsync ``` 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 : ```{.bash linenos="true" breaklines="true" tabsize="2" fontsize="\small" bgcolor="turquoisefonce!10!white"} rsync -av \ --progress \ --delete \ /source/mondossier \ /destination/mondossier ``` Voici le détail des options : - L'option *-av* signifie archive verbeuse. C'est-à-dire que nous effectuons une archive et que nous voulons que le logiciel affiche toutes les opérations effectuées. - L'interrupteur *--progress* signifie d'afficher l'état d'avancement. - L'interrupteur *--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és depuis la dernière sauvegarde. Si nous effectuons une sauvegarde programmée à l'avance, nous conseillons 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, ajoutée à la commande. ## Sauvegarder son contenu : Nextcloud Pour garder des copies de sauvegarde de tous nos projets en cours et de nos contenus pour le web, nous utilisons Nextcloud, qui est installé sur notre serveur en auto-hébergement. ![Capture d'écran de Nextcloud Fichiers](Images/nextcloud_fichiers_jevalideca.png) Avec Nextcloud, l'avantage, c'est que nous avons une copie sur chacun de nos ordinateurs qui se garde synchronisée automatiquement. ![Capture d'écran du client Nextcloud local](Images/nextcloud_local_jevalideca.png) 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 nous protéger contre les incidents physiques. ![Capture d'écran du panneau des versions dans Nextcloud Fichiers](Images/nextcloud_fichiers_versions_jevalideca.png) Nous ajoutons à cela le fait que notre répertoire local de Nextcloud est aussi sauvegardé sur notre disque externe avec rsync, tel que présenté précédemment. ## Code et fichiers texte : git Les fichiers qui changent rapidement, tels que ceux contenant du code, doivent avoir leur propre mécanisme de sauvegarde qui permet des retours arrière illimités, ainsi qu'une gestion des versions. Pour ce faire, nous utilisons un système qui est maintenant omniprésent chez les développeurs et développeuses : *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, pour ceux tentés par l'auto-hébergement, nos recommandons 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. Donc, *git* est 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 nous choisissons de sauvegarder nos données sur un service infonuagique, il est **très fortement recommandé** de les crypter avant l'envoi. Borg est basé sur rsync et offre des fonctions spécifiques telles que la compression et la gestion des versions de sauvegardes. De ce fait, il est le candidat tout indiqué pour faire des sauvegardes fréquentes, sécuritaires et sans entretien.