OffshoreVps
Sécurité8 oct. 20268 min de lecturePar l’équipe OffshoreVps

Comment sauvegarder un VPS avec restic : automatisé et chiffré

La règle 3-2-1, quoi sauvegarder, une configuration restic chiffrée, un script cron et pourquoi il faut tester une restauration. Les instantanés du fournisseur ne suffisent pas.

Un VPS peut tomber en panne, être supprimé par erreur ou être cassé par une mauvaise mise à jour. La seule protection est une sauvegarde que vous avez testée. Ce guide met en place des sauvegardes simples, automatisées et chiffrées avec des outils gratuits.

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

La règle 3-2-1

Gardez 3 copies de vos données, sur 2 types de stockage différents, avec 1 copie ailleurs, complètement. Pour un VPS, cela signifie généralement les données en production, un instantané local et une copie hors site chez un autre fournisseur ou dans un autre pays.

Quoi sauvegarder

  • Les fichiers du site web et les téléversements (/var/www).
  • Les bases de données, d’abord exportées dans un fichier (ne copiez jamais les fichiers d’une base en cours d’utilisation).
  • La configuration : /etc/nginx, les modifications dans /etc, les fichiers Docker Compose et les volumes.
  • Les tâches cron et tous les scripts personnalisés.

Vous pouvez réinstaller le système d’exploitation en quelques minutes. Ce que vous ne pouvez pas réinstaller, ce sont vos données et vos paramètres.

Utiliser restic pour des sauvegardes chiffrées et dédupliquées

sudo apt install -y restic
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic init

Créez le fichier de mot de passe avec une longue chaîne aléatoire et conservez-en une copie en lieu sûr. Si vous perdez ce mot de passe, les sauvegardes ne pourront pas être ouvertes. restic prend aussi en charge le stockage compatible S3, vous pouvez donc envoyer vers n’importe quel stockage d’objets.

Les étapes de ce guide dans l’ordre : 1. La règle 3-2-1 ; 2. Quoi sauvegarder ; 3. Utiliser restic pour des sauvegardes chiffrées et dédupliquées ; 4. Un script de sauvegarde ; 5. Tester une restauration ; 6. Les instantanés aident, mais ne suffisent pas
Les étapes de ce guide, dans l’ordre.

Un script de sauvegarde

#!/bin/bash
set -e
export RESTIC_REPOSITORY=sftp:backup@other-server:/backups/vps1
export RESTIC_PASSWORD_FILE=/root/.restic-pass

mysqldump --single-transaction --all-databases | gzip > /var/backups/db.sql.gz
restic backup /var/www /etc /var/backups/db.sql.gz
restic forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

Enregistrez-le sous /usr/local/bin/backup.sh, rendez-le exécutable et planifiez-le :

sudo chmod +x /usr/local/bin/backup.sh
echo "30 3 * * * root /usr/local/bin/backup.sh >> /var/log/backup.log 2>&1" | sudo tee /etc/cron.d/backup

Tester une restauration

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

Une sauvegarde que vous n’avez jamais restaurée n’est qu’un espoir. Testez une fois par trimestre, et toujours après avoir changé quoi que ce soit.

Les instantanés aident, mais ne suffisent pas

Les instantanés du fournisseur sont rapides et pratiques avant des changements risqués, mais ils vivent chez le même fournisseur et sur le même compte. Considérez-les comme un confort et gardez une copie hors site indépendante.