Aller au contenu

AS213941 · Peering-20 % sur tous les VPS avec le code NVH20 · Livraison en 60 secondes

VPS LinuxDès 2,49 €/moisVPS WindowsDès 3,49 €/moisServeur FiveMDès 0,99 €/moisServeur MinecraftDès 1,99 €/mois
VPS & Cloud

Gammes

VPS Linux NVMeAccès root, Debian, Ubuntu, Alma…VPS Windows RDPBureau à distance, licence incluseServeurs dédiésIntel Xeon Gold, ressources exclusivesVPS PterodactylPanel de jeux préinstallé

Réseau et hébergement

Anti-DDoSHébergement webHousingTransit IPVPN

Professionnels

VPS revendeurProgramme revendeur
Solutions

Bots et automatisation

VPS agents IAUn serveur pour vos assistants de code et agents autonomesVPS bot TelegramPython ou Node.js, toujours joignableVPS bot DiscordMusique, modération, tickets : sans interruptionVPS n8nWorkflows sans limite d'exécutionsVPS VPNUn tunnel chiffré qui sort par la FranceVPS web scrapingCollecte de données planifiée, IP dédiée

Trading

VPS ForexVos robots gèrent les positions la nuitVPS MetaTrader 4Plusieurs terminaux MT4 sur une machineVPS MetaTrader 5Forex, indices et actions dans MT5VPS NinjaTraderFutures et stratégies NinjaScriptVPS bot de tradingBots crypto open source, clés API protégées

Bureau Windows

VPS Windows 10Pour vos logiciels qui exigent Windows 10VPS Windows 11Le poste Windows récent, accessible partoutVPS SEOCrawls de gros sites sans bloquer votre PCVPS streamingUn studio OBS qui diffuse depuis le datacenterVPS WordPressSites rapides sur disque NVMe
Marketplace

Intelligence artificielle

Claude CodeL'agent de code d'Anthropic, dans votre terminalCodex CLIL'agent de code d'OpenAI en ligne de commandeOllamaDes modèles de langage locaux, sans API externeOpen WebUIUne interface de discussion pour vos modèles Ollama

Automatisation

n8nVos automatisations, sans limite d'exécutions

Déploiement et conteneurs

DockerLe moteur de conteneurs et Docker ComposeCoolifyDéployez vos applications depuis Git, sur votre serveurPortainerGérez vos conteneurs Docker depuis le navigateur

Supervision

Uptime KumaSurveillez vos sites et serveurs, alertes comprises

Réseau et sécurité

WireGuardVotre propre VPN chiffré, rapide et moderneVaultwardenUn gestionnaire de mots de passe auto-hébergé

Sites et cloud

NextcloudVotre cloud de fichiers, agenda et contactsWordPressLe CMS le plus utilisé, sur une pile Nginx rapide

Jeux

PterodactylLe panel pour héberger vos serveurs de jeux
Gaming

Serveurs de jeux

Serveur FiveMtxAdmin, ESX, QBCoreServeur MinecraftJava, Bedrock, modpacksServeur RustOxide, Carbon, wipesServeur Nova-LifeRP Nova-Life: Amboise

Protection et outils

Anti-DDoS FiveMOutils gratuits
Ressources

Apprendre

DocumentationBlog

Assistance

ContactEngagement SLA
Voir les offres Espace client Peering · AS213941

Installation

Sauvegarder un VPS avec BorgBackup : chiffré, dédupliqué, hors serveur

Par Équipe NVHCloud 2026-09-18 Lecture : 4 min

Sur un VPS, les sauvegardes de vos données sont votre responsabilité : c'est la contrepartie de l'accès root. BorgBackup est l'outil de référence pour cela sous Linux. Il chiffre les données avant qu'elles quittent le serveur, ne stocke qu'une fois les blocs identiques, ce qui rend les sauvegardes quotidiennes très légères, et permet de restaurer un simple fichier en quelques secondes.

1. La règle d'or : une sauvegarde hors du serveur

Une sauvegarde stockée sur le même VPS que les données ne protège ni d'une erreur de suppression du serveur, ni d'un piratage, ni d'un rançongiciel qui chiffrerait tout le disque. Appliquez la règle 3-2-1 : trois copies des données, sur deux supports différents, dont une hors site.

Concrètement, il vous faut un espace de stockage accessible en SSH ailleurs que sur le serveur à sauvegarder : un second VPS de stockage, un serveur chez vous, ou un service de stockage compatible Borg. Dans ce guide, cette machine s'appelle backup.exemple.fr.

2. Installer Borg

Borg doit être installé sur les deux machines, le VPS et le serveur de stockage :

apt update && apt install -y borgbackup

Sur le VPS, créez une clé SSH dédiée aux sauvegardes, sans phrase de passe puisqu'elle servira à une tâche automatique :

ssh-keygen -t ed25519 -f /root/.ssh/borg -N "" -C "borg@$(hostname)"
cat /root/.ssh/borg.pub

Sur le serveur de stockage, créez un utilisateur borg et ajoutez la clé publique dans son fichier ~/.ssh/authorized_keys, en la restreignant aux seules commandes Borg :

command="borg serve --restrict-to-path /home/borg/repos",restrict ssh-ed25519 AAAA... borg@monvps

Cette restriction limite les dégâts si le VPS était compromis : la clé ne permet pas d'ouvrir un terminal sur le serveur de stockage.

3. Créer le dépôt distant

Choisissez une phrase de passe longue et stockez-la dans un fichier lisible par root uniquement :

openssl rand -base64 32 > /root/.borg-pass
chmod 600 /root/.borg-pass
export BORG_RSH="ssh -i /root/.ssh/borg"
export BORG_PASSCOMMAND="cat /root/.borg-pass"
borg init --encryption=repokey-blake2 ssh://[email protected]/home/borg/repos/monvps

Exportez immédiatement la clé du dépôt et conservez-la, avec la phrase de passe, ailleurs que sur le VPS : dans un gestionnaire de mots de passe par exemple.

borg key export ssh://[email protected]/home/borg/repos/monvps /root/borg-key.txt
cat /root/borg-key.txt   # à copier en lieu sûr, puis supprimer le fichier
⚠️ Sans la clé et la phrase de passe, les sauvegardes sont illisibles, y compris pour vous. Si le VPS disparaît et que ces deux éléments n'étaient stockés que dessus, vos sauvegardes sont perdues.

4. Le script de sauvegarde

Les fichiers d'une base de données en cours d'utilisation ne se copient pas de façon fiable. On exporte donc d'abord les bases dans un fichier, puis Borg sauvegarde cet export avec le reste. Créez /root/backup.sh :

#!/bin/bash
set -euo pipefail
export BORG_REPO="ssh://[email protected]/home/borg/repos/monvps"
export BORG_RSH="ssh -i /root/.ssh/borg"
export BORG_PASSCOMMAND="cat /root/.borg-pass"
# 1. export cohérent des bases de données
mkdir -p /var/backups/sql
mariadb-dump --all-databases --single-transaction --routines --events \
  | gzip > /var/backups/sql/all-databases.sql.gz
# 2. sauvegarde
borg create --stats --compression zstd,3 --exclude-caches \
  --exclude '/var/www/*/wp-content/cache' \
  ::'{hostname}-{now:%Y-%m-%d_%H%M}' \
  /etc /var/www /home /root /var/backups/sql
# 3. rotation : 7 quotidiennes, 4 hebdomadaires, 6 mensuelles
borg prune --keep-daily 7 --keep-weekly 4 --keep-monthly 6
borg compact
chmod 700 /root/backup.sh
/root/backup.sh

Le premier passage envoie tout ; les suivants n'envoient que les blocs modifiés et durent en général quelques secondes à quelques minutes. Adaptez la liste des dossiers à votre usage : ajoutez par exemple le dossier de vos serveurs de jeux ou de vos volumes Docker.

💡 Sous Docker, n'utilisez pas mariadb-dump sur l'hôte : lancez l'export dans le conteneur avec docker exec, puis sauvegardez le fichier produit. Voir Docker et Docker Compose.

5. Automatiser

Une ligne dans /etc/cron.d/ lance la sauvegarde chaque nuit à 3 h 30 et garde une trace dans un journal :

echo '30 3 * * * root /root/backup.sh >> /var/log/borg.log 2>&1' > /etc/cron.d/borg

Le script contient toutes ses variables, donc il fonctionne depuis cron sans configuration supplémentaire. C'est l'erreur la plus fréquente avec Borg : une commande qui marche à la main mais échoue la nuit parce que la phrase de passe n'est pas définie.

6. Restaurer

Exportez d'abord les trois variables du script dans votre terminal, puis listez les archives disponibles :

borg list

Restaurer un fichier ou un dossier : borg extract restaure dans le dossier courant, en recréant l'arborescence. Placez-vous dans un dossier temporaire pour ne rien écraser par erreur :

mkdir -p /tmp/restore && cd /tmp/restore
borg extract ::monvps-2026-09-18_0330 var/www/monsite.fr/wp-config.php

Parcourir une archive comme un dossier, pour retrouver un fichier sans connaître son chemin exact :

apt install -y python3-pyfuse3
mkdir -p /mnt/borg && borg mount ::monvps-2026-09-18_0330 /mnt/borg
ls /mnt/borg
borg umount /mnt/borg

Restaurer les bases de données à partir de l'export :

borg extract ::monvps-2026-09-18_0330 var/backups/sql/all-databases.sql.gz
gunzip -c var/backups/sql/all-databases.sql.gz | mariadb

7. Contrôler dans la durée

  • Lisez le journal de temps en temps : tail -n 30 /var/log/borg.log. Une sauvegarde qui échoue en silence pendant des semaines est le scénario le plus courant.
  • Vérifiez l'intégrité du dépôt une fois par mois avec borg check.
  • Testez une restauration complète au moins une fois par trimestre, idéalement sur un VPS de test. Une sauvegarde jamais restaurée n'est qu'une hypothèse.

Pour recevoir une alerte en cas d'échec, combinez ce script avec la supervision décrite dans surveiller son VPS. Et si vous hébergez un site WordPress, voir aussi installer WordPress sur un VPS.

Questions fréquentes

Où stocker les sauvegardes d'un VPS ?

Toujours ailleurs que sur le VPS lui-même : un second serveur, idéalement dans un autre datacenter, un serveur à domicile ou un service de stockage accessible en SSH. Une sauvegarde sur le même disque ne protège ni d'une suppression du serveur, ni d'un piratage.

Quelle place prennent les sauvegardes Borg ?

Grâce à la déduplication, chaque nouvelle archive ne stocke que les blocs modifiés depuis la précédente. Avec la rotation de ce guide, soit 17 archives, l'espace total dépasse souvent à peine la taille d'une seule sauvegarde complète compressée, pour un site dont les fichiers changent peu.

Peut-on restaurer un seul fichier sans tout restaurer ?

Oui. borg extract accepte un chemin précis, et borg mount permet de parcourir une archive comme un dossier ordinaire pour copier uniquement ce dont vous avez besoin.

Borg ou rsync, que choisir ?

rsync copie un état à un instant donné : si un fichier est corrompu ou chiffré par un rançongiciel, la copie suivante l'écrase. Borg conserve un historique de versions chiffrées et dédupliquées, ce qui permet de revenir à l'état d'une date précise. Pour des sauvegardes, Borg est le meilleur choix.

VPS Linux NVMe

Accès root, Intel Xeon Gold et NVMe, livré en 60 secondes. Dès 2,49 €/mois.