#+title: Sauvegarde #+date: [2024-08-03 Sat 15:49] #+filetags: :pc: #+identifier: 20240803T154933 * Stratégie: tout est géré avec git-annex. Dans un dossier local "annex", il y a 2 dépôts - data: contient les données sensibles, non sauvegardées en dehors du PC portable - documents : tout le reste (photos, cours...) La sauvegarde est faite sur Google Drive et Mega (avec rclone) ** Justification git-annex est très lent pour un nombre important de fichiers car il gère chaque fichier individuellement. Mais il permet de gérer plusieurs destination d'archivage (dossier local, ssh...). Google Drive et Mega ne sont pas très adaptées car le protocole git n'est pas supporté. Restic est une bonne alternative pour de la sauvegarde seule (voir ) * Configuration ** Dépendances - git-annex - rclone - installer [[https://github.com/git-annex-remote-rclone/git-annex-remote-rclone]] (copier exécutable dans $PATH) - ajouter un symlink ([[https://rclone.org/commands/rclone_gitannex/][source]] ) #+begin_src sh ln -s /usr/bin/rclone ~/.local/bin/git-annex-remote-rclone-builtin #+end_src ** Google Drive et Mega avec rclone #+begin_src sh rclone config #+end_src Suivre les indications pour ajouter un remote nommé mega de type Mega (29) Idem pour google drive (nommé gdrive) ** Git-annex #+begin_src sh cd documents git init git annex init git annex add #+end_src Créer un remote megaremote qui pointe vers le remote mega dans rclone. Pas d'encryption: #+begin_src sh git annex initremote mega type=external externaltype=rclone-builtin rcloneremotename=mega encryption=none #+end_src Idem pour Google Drive #+begin_src sh git annex initremote gdrive type=external externaltype=rclone-builtin rcloneremotename=gdrive encryption=none #+end_src * Maintenance Dans chaque dossier #+begin_src nu rsync -avz raspberry:Downloads/torrents private/ cd documents; git annex sync --content ; cd .. cd data ; git annex sync --content ; cd .. #+end_src * Old ** Papers avec Github LFS :PROPERTIES: :CUSTOM_ID: papers :END: #+begin_src sh cd papers git init git annex init git annex add git annex initremote github-lfs type=git-lfs url=git@github.com:apraga/papers.git encryption=none git lfs track "*.pdf" git annex sync --content #+end_src Note: les articles sont sur sourcehut aussi mais sans lfs. ** Sauvegarde restic sur google drive et mega :PROPERTIES: :CUSTOM_ID: sauvegarde-restic-sur-google-drive-et-mega :END: Cf configuration rclone puis #+begin_src nu cd ~/annex $env.RESTIC_PASSWORD = (pass show Backup/restic-private) restic -r rclone:gdrive:restic-private init restic -r rclone:mega:restic-private init restic -r rclone:gdrive:restic-private backup private restic -r rclone:mega:restic-private backup private $env.RESTIC_PASSWORD = (pass show Backup/restic-public) restic -r rclone:gdrive:restic-public init restic -r rclone:mega:restic-public init restic -r rclone:gdrive:restic-public backup public restic -r rclone:mega:restic-public backup public $env.RESTIC_PASSWORD = (pass show Backup/restic-public) restic -r rclone:gdrive:restic-public backup public restic -r rclone:mega:restic-public backup public #+end_src ** Google Drive avec encryption Pour googledrive, il faut un client id et un client secret selon les consignes ici : [[https://rclone.org/drive/#making-your-own-client-id]]. On encrypte mais avec la clé dans le dépôt git donc ne pas mettre les dépôts n'importe où ! #+begin_src sh git annex initremote gdriveremote type=external externaltype=rclone target=gdrive prefix=annex-private chunk=50MiB encryption=shared rclone_layout=lower #+end_src * Gentoo :PROPERTIES: :CUSTOM_ID: gentoo :END: Un dépôt git pour /etc/portage