sauvegarder son VPS··7 min de lecture·Par l'équipe OmegaCloud

Automatiser les sauvegardes de son VPS : guide complet

Illustration immersive du sujet : sauvegarder son VPS

Sauvegarder son VPS n'est pas une option mais une exigence operationnelle : une erreur de manipulation, une corruption disque, une intrusion ou un rm -rf malheureux peuvent detruire des annees de travail en quelques secondes. Ce guide 2026 vous montre comment mettre en place une strategie de sauvegarde automatisee, fiable et testee, aussi bien sous Linux que sous Windows Server.



Pourquoi et comment sauvegarder son VPS efficacement

Un VPS reste une machine exposee : reseau public, services ouverts, mises a jour permanentes. Meme sur une infrastructure robuste avec alimentation N+1 et uplink redondant, la sauvegarde applicative reste de votre responsabilite. L'infrastructure protege le materiel, pas vos donnees logiques.

La regle 3-2-1

La reference en matiere de sauvegarde reste la regle 3-2-1 :

  • 3 copies de vos donnees (la production + 2 sauvegardes).
  • 2 supports differents (disque local et stockage distant).
  • 1 copie hors site, sur un serveur ou un stockage objet geographiquement separe.

Un snapshot pris depuis le panel de votre hebergeur est utile pour un rollback rapide, mais il ne remplace pas une sauvegarde externalisee. Si l'incident touche l'hyperviseur ou votre compte, un snapshot seul ne suffit pas.

Snapshot vs sauvegarde fichier

Critere Snapshot panel Sauvegarde fichier / base
Granularite Disque complet Fichier, dossier, table SQL
Restauration partielle Non Oui
Externalisation Liee a l'infra Vers n'importe quel stockage
Rapidite de rollback Tres rapide Variable

La bonne pratique consiste a combiner les deux : les snapshots du panel OmegaCloud pour un retour arriere immediat avant une operation risquee, et des sauvegardes fichiers automatisees et externalisees pour la conservation long terme.



Sauvegarder son VPS Linux avec des scripts automatises

Sous Linux, tout se joue autour de trois composants : la selection des donnees, l'outil de transfert incremental et la planification via cron ou systemd timers. Voici une approche concrete et eprouvee sur le terrain.

Preparer un stockage distant securise

Commencez par generer une paire de cles SSH dediee aux sauvegardes, sans passphrase pour l'automatisation, mais avec une cle restreinte cote serveur distant :

ssh-keygen -t ed25519 -f ~/.ssh/backup_key -C "backup-vps"
ssh-copy-id -i ~/.ssh/backup_key.pub [email protected]

Verifiez ensuite que le pare-feu autorise uniquement le trafic necessaire. La protection contre les attaques volumetriques est deja assuree cote infrastructure, mais le durcissement local reste indispensable :

ufw default deny incoming
ufw default allow outgoing
ufw allow OpenSSH
ufw enable
ufw status verbose

Sauvegarde incrementale avec rsync

rsync reste l'outil de reference pour des sauvegardes fichiers incrementales rapides. Il ne transfere que les differences, ce qui reduit fortement la consommation de bande passante.

#!/bin/bash
set -euo pipefail

DATE=$(date +%Y-%m-%d)
SRC="/var/www /etc /home"
DEST="[email protected]:/backups/vps01/$DATE"
KEY="$HOME/.ssh/backup_key"

rsync -aAXH --delete \
  -e "ssh -i $KEY" \
  $SRC "$DEST" \
  --exclude '/var/www/*/cache' \
  --link-dest="/backups/vps01/latest"

L'option --link-dest cree des sauvegardes de type hard link : chaque snapshot journalier ne consomme que l'espace des fichiers modifies, tout en restant navigable comme une copie complete.

Dump des bases de donnees

Ne sauvegardez jamais les fichiers de donnees MySQL/PostgreSQL a chaud sans precaution : vous risquez une base incoherente. Passez toujours par un dump logique.

# MySQL / MariaDB
mysqldump --single-transaction --quick --routines \
  --all-databases | gzip > /var/backups/db-$(date +%F).sql.gz

# PostgreSQL
sudo -u postgres pg_dumpall | gzip > /var/backups/pg-$(date +%F).sql.gz

Chiffrer avant l'envoi

Une sauvegarde externalisee doit etre chiffree. gpg ou restic font parfaitement l'affaire. restic gere nativement le chiffrement, la deduplication et l'incrementiel :

export RESTIC_PASSWORD_FILE=/root/.restic-pass
restic -r sftp:[email protected]:/backups/restic init
restic -r sftp:[email protected]:/backups/restic \
  backup /var/www /etc /var/backups
restic -r sftp:[email protected]:/backups/restic \
  forget --keep-daily 7 --keep-weekly 4 --keep-monthly 6 --prune

Planifier avec systemd timer

Preferez un systemd timer a cron pour un meilleur logging et une gestion propre des echecs. Creez d'abord le service :

# /etc/systemd/system/backup.service
[Unit]
Description=Sauvegarde VPS

[Service]
Type=oneshot
ExecStart=/usr/local/bin/backup.sh
# /etc/systemd/system/backup.timer
[Unit]
Description=Sauvegarde quotidienne VPS

[Timer]
OnCalendar=*-*-* 03:30:00
Persistent=true

[Install]
WantedBy=timers.target

Activez et verifiez :

systemctl daemon-reload
systemctl enable --now backup.timer
systemctl list-timers backup.timer
journalctl -u backup.service --since today

Cette approche s'integre parfaitement sur un VPS Linux OmegaCloud disposant d'un stockage SSD SAS et d'un acces root SSH complet. Pour un Nextcloud auto-heberge, le repertoire de donnees et la base se sauvegardent de la meme maniere : voir la page VPS Nextcloud.



Sauvegarder un VPS Windows Server

Sous Windows, la logique reste identique mais l'outillage change. On combine Windows Server Backup, PowerShell et une planification via le Task Scheduler.

Installer la fonctionnalite de sauvegarde

Install-WindowsFeature -Name Windows-Server-Backup -IncludeManagementTools

Script de sauvegarde PowerShell

L'exemple ci-dessous cree une sauvegarde complete vers un partage reseau ou un volume dedie :

$Policy = New-WBPolicy
$Volumes = Get-WBVolume -VolumePath "C:"
Add-WBVolume -Policy $Policy -Volume $Volumes

$Target = New-WBBackupTarget -NetworkPath "\\storage\backups\win-vps"
Add-WBBackupTarget -Policy $Policy -Target $Target

Set-WBSchedule -Policy $Policy -Schedule 03:30
Set-WBPolicy -Policy $Policy -Force

Sauvegarder des fichiers cibles

Pour une sauvegarde granulaire de dossiers applicatifs, robocopy reste imbattable en mode miroir incremental :

robocopy "C:\inetpub\wwwroot" "\\storage\backups\web" /MIR /Z /R:3 /W:10 /LOG:C:\logs\backup.log

Planifier via le Task Scheduler

$Action = New-ScheduledTaskAction -Execute "PowerShell.exe" `
  -Argument "-File C:\scripts\backup.ps1"
$Trigger = New-ScheduledTaskTrigger -Daily -At 3:30AM
Register-ScheduledTask -TaskName "BackupVPS" `
  -Action $Action -Trigger $Trigger -User "SYSTEM" -RunLevel Highest

Ces methodes fonctionnent nativement sur un VPS Windows OmegaCloud, livre avec la licence Windows Server incluse et un environnement RDP pret a l'emploi.

Conseil terrain : chiffrez le partage reseau ou utilisez SMB 3 avec chiffrement active. Une sauvegarde transitant en clair sur le reseau est une faille en soi.


Tester, superviser et automatiser via API

Une sauvegarde jamais testee est une sauvegarde qui n'existe pas. C'est la regle la plus violee et la plus couteuse en production.

Verifier l'integrite des sauvegardes

Avec restic, planifiez une verification periodique :

restic -r sftp:[email protected]:/backups/restic check --read-data-subset=10%

Effectuez au minimum une restauration de test par trimestre sur un VPS jetable :

restic -r sftp:[email protected]:/backups/restic \
  restore latest --target /tmp/restore-test

Superviser les echecs

Chaque job de sauvegarde doit remonter son statut. Couplez vos scripts a un webhook pour etre alerte immediatement en cas d'echec :

if ! /usr/local/bin/backup.sh; then
  curl -X POST -H "Content-Type: application/json" \
    -d '{"status":"failed","host":"vps01"}' \
    https://votre-endpoint/webhook
fi

Les integrations & API OmegaCloud permettent d'automatiser la creation de snapshots via API REST et webhooks, et de les declencher depuis un pipeline GitHub Actions ou GitLab CI avant chaque deploiement sensible.

Automatiser les snapshots dans un pipeline CI/CD

Un pattern efficace : declencher un snapshot via l'API juste avant une migration de base ou une mise en production. En cas de probleme, le rollback est immediat.

# Exemple d'appel API generique avant deploiement
curl -X POST https://api.omega-cloud.fr/v1/vps/{id}/snapshots \
  -H "Authorization: Bearer $OMEGA_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"label":"pre-deploy-'"$(date +%s)"'"}'

Checklist d'une strategie de sauvegarde saine

  1. Sauvegardes automatisees et planifiees (timer / task scheduler).
  2. Copie externalisee hors du VPS de production.
  3. Chiffrement au repos et en transit.
  4. Retention definie (quotidien, hebdomadaire, mensuel).
  5. Verification d'integrite reguliere.
  6. Test de restauration documente.
  7. Alerte automatique en cas d'echec.

Pour approfondir la planification cote systeme, la documentation officielle de systemd.timer est une reference precieuse : Source.

Si votre projet repose sur un hebergement web OmegaCloud avec deploiement Git, la meme logique s'applique : dump base + archive des fichiers versionnes avant chaque livraison.



Conclusion

Sauvegarder son VPS repose sur trois piliers indissociables : automatisation, externalisation et tests de restauration reguliers. Snapshots pour le rollback rapide, sauvegardes fichiers chiffrees pour la conservation, supervision pour la fiabilite. Mettez en place cette strategie une fois, testez-la serieusement, et vous transformerez un incident potentiellement catastrophique en simple operation de routine.



FAQ

Quelle est la difference entre un snapshot et une sauvegarde de mon VPS ?

Un snapshot capture l'etat complet du disque a un instant T et permet un retour arriere rapide, mais il reste lie a l'infrastructure. Une sauvegarde fichier est externalisee, permet une restauration granulaire (un fichier, une table SQL) et survit meme a la perte du VPS ou du compte. Les deux sont complementaires.

A quelle frequence dois-je sauvegarder mon VPS ?

Cela depend de votre tolerance a la perte de donnees (RPO). Pour un site vitrine, une sauvegarde quotidienne suffit. Pour une base transactionnelle active, ajoutez des dumps toutes les heures et des snapshots avant chaque deploiement. Conservez plusieurs points de restauration avec une politique de retention (7 jours, 4 semaines, 6 mois).

Comment m'assurer que mes sauvegardes sont reellement exploitables ?

Une sauvegarde non testee est inutile. Planifiez une verification d'integrite automatique (par exemple restic check) et realisez une restauration complete sur un VPS de test au moins chaque trimestre. Documentez la procedure et mesurez le temps de restauration pour connaitre votre RTO reel.

Prêt à mettre en pratique ce que vous venez de lire ?

Découvrir nos offres

Articles liés

Prêt à vous lancer ?

à partir de 6,99 € HT/mois

Découvrir nos offres

Hébergements

Navigation