# Backup

Vaut mieux mourir que guérir.  
Ah non, prévenir pardon !

# [Backup] Borg

## Introduction

**Borgbackup** permet de faire des sauvegardes <span style="text-decoration: underline;">différentielles</span> ce qui permet un gain d'espace et de temps de sauvegarde.

Chaque version spécifique d'une sauvegarde peut être restaurée.

Il supporte le chiffrement des sauvegardes, leur compression ainsi que l'utilisation d'un dépôt distant (notamment via SSH).

[![64283947-c1fa7880-cf58-11e9-8699-ca8efcfe17ec.png](https://wiki.neopipe.fr/uploads/images/gallery/2024-03/scaled-1680-/64283947-c1fa7880-cf58-11e9-8699-ca8efcfe17ec.png)](https://wiki.neopipe.fr/uploads/images/gallery/2024-03/64283947-c1fa7880-cf58-11e9-8699-ca8efcfe17ec.png)

## Installation

#### Debian / Ubuntu

```bash
apt install -y borgbackup
```

## Initialisation d'un dépôt

#### Dépôt classique

```bash
borg init -e none REPOS_DIR
```

#### Dépôt chiffré

```bash
borg init --encryption=REPOS_KEY REPOS_DIR
```

## Faire une sauvegarde

#### Sauvegarde classique

```bash
borg create REPOS::BACKUP_NAME DIR_TO_SAVE
```

#### Sauvegarde compressée

```bash
borg create -C zstd,10 REPOS::BACKUP_NAME DIR_TO_SAVE
```

## Lister les sauvegardes d'un dépôt

```bash
borg list REPOS
```

## Afficher le contenu d'une sauvegarde

```bash
borg list REPOS::BACKUP_NAME
```

## Restaurer une sauvegarde

```bash
borg extract REPOS::BACKUP_NAME
```

## Supprimer une sauvegarde

```bash
borg delete REPOS::BACKUP_NAME
```

## Supprimer un dépot

```bash
borg delete REPOS
```

## Utiliser un dépôt distant

```bash
ssh://USER@IP:22/
```

## Afficher la progression

```bash
--progress
```

# [Backup] Rsync

## Introduction

Rsync est un logiciel de sauvegarde incrémentale ce qui apporte un gain de performance et d'espace disque.

Cependant, contrairement à la sauvegarde différentielle, seulement la dernière version de la sauvegarde est restaurable.

## [![Rsync.png](https://wiki.neopipe.fr/uploads/images/gallery/2023-07/scaled-1680-/rsync.png)](https://wiki.neopipe.fr/uploads/images/gallery/2023-07/rsync.png)

## Copier un répertoire  


```bash
rsync -a <SOURCE/> <DESTINATION/>
```

## Options courantes

`<strong>-a</strong> : Synchronise récursivement tout le répertoire (inclus sous-répertoires) tout en préservant les permissions, les dates, les propriétaires et les liens symboliques.`

`<strong>-v</strong> : Mode verbeux.`

`<strong>-z</strong> : Compression des données pendant le transfert.`

`<strong>--delete</strong> : Supprime les fichiers dans la destination qui n'existent pas dans la source.`

`<strong>--exclude</strong> : Exclut certains fichiers ou répertoires de la synchronisation.`

`<strong>--progress</strong> : Affiche une barre de progression du transfert.`

`<strong>--dry-run</strong>` : Effectue une simulation sans effectuer réellement la copie.

`<strong>-h</strong> : Affiche les tailles de fichiers dans un format lisible par l'homme (KB, MB, GB, etc.).`

## Exemples courants

#### Copier localement un répertoire vers un autre  


```bash
rsync -av <SOURCE/> <DESTINATION/>
```

#### Copier vers une machine distante via SSH :

```bash
rsync -avz <SOURCE/> <USER>@<REMOTE_HOST>:</DESTINATION_PATH>
```

#### Supprimer les fichiers dans la destination qui n'existent plus dans la source :

```bash
rsync -av --delete <SOURCE/> <DESTINATION/>
```

Exclure certains fichiers ou répertoires de la synchronisation :

```bash
rsync -av --exclude='*.txt' <SOURCE/> <DESTINATION/>
```

<div class="bg-black rounded-md mb-4" id="bkmrk--1"><div class="flex items-center relative text-gray-200 bg-gray-800 px-4 py-2 text-xs font-sans justify-between rounded-t-md">  
</div></div>

# [Backup] Restic

## Introduction

Restic est un outil qui permet de faire des sauvegardes comme pourrait le faire borg. À noter qu'il supporte différents protocoles et qu'il permet d'envoyer des backups via ssh notamment. Il protège aussi les backups avec un mot de passe par défaut.

[![image.png](https://wiki.neopipe.fr/uploads/images/gallery/2025-10/scaled-1680-/w4Vimage.png)](https://wiki.neopipe.fr/uploads/images/gallery/2025-10/w4Vimage.png)

## Cheat-sheet

#### Afficher la page d'aide

```bash
restic --help
```

#### Initialiser un repo

```bash
restic init --repo <DIR> --insecure-no-password
```

#### Créer une snapshot

```bash
restic backup <SRC_DIR> -r <REPO_DIR> --insecure-no-password
```

#### Lister les snapshots

```bash
restic snapshots -r <REPO_DIR> --insecure-no-password
```

#### Restaurer une snapshot

```bash
restic restore <SNAPSHOT_ID> -r <REPO_DIR> --target <DST_DIR> --insecure-no-password
```

#### Supprimer une snapshot

```bash
restic forget <SNAPSHOT_ID> -r <REPO_DIR> --insecure-no-password
```