OffshoreVps
Sécurité25 sept. 20266 min de lecturePar l’équipe OffshoreVps

Sauvegarder un VPS avec Restic ou Borg

Sauvegardes chiffrées et dédupliquées vers un second serveur : commandes restic et borg, dumps de bases de données, rétention, planification et test de restauration.

Une sauvegarde que vous pouvez restaurer fait la différence entre un après-midi pénible et la perte d’un projet. Le guide de sauvegarde de base d’un VPS en présente le principe. Celui-ci va plus loin avec restic et BorgBackup : deux outils qui réalisent des sauvegardes chiffrées et dédupliquées vers un second serveur ou vers un stockage d’objets.

Fenêtre de terminal sur un VPS montrant les commandes utilisées pour sauvegarder un VPS avec restic ou borg, à commencer par « sudo apt install -y restic »
Le type de commandes que vous exécuterez sur votre serveur dans ce guide.

Pourquoi restic ou borg plutôt que de simples copies

  • Déduplication. Seules les données modifiées sont stockées, si bien que les instantanés quotidiens restent petits.
  • Chiffrement. Les données sont chiffrées avant de quitter votre serveur.
  • Instantanés. Vous pouvez restaurer l’état de n’importe quel jour passé.
  • Vérification. Les deux outils peuvent vérifier l’intégrité du dépôt.

Choisissez-en un. Restic est simple et fonctionne avec de nombreux types de stockage, dont SFTP et le stockage compatible S3. Borg est très efficace et fonctionne via SSH vers un serveur sur lequel borg est installé.

Où envoyer les sauvegardes

Ne stockez jamais l’unique sauvegarde sur le même serveur. Utilisez un second VPS dans un autre emplacement, un bucket compatible S3 ou une storage box. Un petit VPS avec un gros disque constitue une cible de sauvegarde peu coûteuse. Voir les offres de VPS.

Restic : mise en place

sudo apt install -y restic
export RESTIC_REPOSITORY="sftp:backup@backup.example.com:/srv/restic/myserver"
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init

Créez le fichier de mot de passe avec un long mot de passe aléatoire et conservez-en une copie hors ligne. Sans ce mot de passe, les sauvegardes ne peuvent pas être restaurées.

restic backup /etc /home /var/www --exclude-caches
restic snapshots
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune
restic check
Les étapes de ce guide dans l’ordre : 1. Pourquoi restic ou borg plutôt que de simples copies ; 2. Où envoyer les sauvegardes ; 3. Restic : mise en place ; 4. Les bases de données demandent des précautions ; 5. La planifier ; 6. Tester une restauration
Les étapes de ce guide, dans l’ordre.

Borg : mise en place

sudo apt install -y borgbackup
export BORG_REPO="ssh://backup@backup.example.com/srv/borg/myserver"
borg init --encryption=repokey-blake2
borg create --stats --compression zstd ::'{hostname}-{now:%Y-%m-%d}' /etc /home /var/www
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6
borg check

Exportez et conservez la clé du dépôt avec borg key export.

Les bases de données demandent des précautions

Ne copiez pas les fichiers d’une base de données en cours d’utilisation. Faites-en d’abord un dump et sauvegardez le dump :

mysqldump --single-transaction --all-databases | gzip > /var/backups/db.sql.gz
sudo -u postgres pg_dumpall | gzip > /var/backups/pg.sql.gz

La planifier

Lancez la sauvegarde depuis un timer systemd ou cron. Une simple ligne cron :

15 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1

Faites-vous alerter en cas d’échec, par exemple avec un ping de supervision à la fin du script.

Tester une restauration

restic restore latest --target /tmp/restore-test --include /etc/nginx
ls /tmp/restore-test

Testez de temps en temps une vraie restauration sur une machine de rechange. Une sauvegarde que vous n’avez jamais testée n’est qu’un espoir.