Sauvegarde de base de données : PostgreSQL, MySQL, rsync, rclone, CloudBox | INTROSERV
EUR
european

EUR

usa

USD

French Fr
Ex. VAT Ex. VAT 0%

Sauvegarde de base de données : PostgreSQL, MySQL, rsync, rclone, CloudBox

La sauvegarde de base de données est l'une des procédures les plus importantes pour garantir la sécurité et la fiabilité des sites web et des applications. La perte de données peut survenir pour de nombreuses raisons : défaillance du serveur, erreur de l'administrateur, problèmes de mise à jour, logiciels malveillants ou simplement erreur humaine. Les sauvegardes régulières vous permettent de restaurer rapidement votre projet sans perte de données.

Ce guide explique comment sauvegarder les bases de données PostgreSQL et MySQL, comment stocker les sauvegardes sur un serveur Linux distant en utilisant rsync ou scp, et comment les télécharger sur un stockage cloud en utilisant rclone.

Sauvegarde PostgreSQL

PostgreSQL fournit l'utilitaire standard pg_dump, qui permet de créer une copie complète de la base de données sous forme de fichier SQL.

Exemple de création d'une sauvegarde :

pg_dump -U myuser -h localhost mydatabase > /backup/mydatabase_$(date +%F).sql

Explication des paramètres :

  • -U myuser — nom d'utilisateur de la base de données ;
  • -h localhost — adresse du serveur (peut être omise si local) ;
  • mydatabase — nom de la base de données ;
  • /backup/... — chemin de destination ;
  • $(date +%F) — ajoute la date actuelle au nom du fichier.

Pour économiser de l'espace, compressez immédiatement la sauvegarde :

pg_dump -U myuser mydatabase | gzip > /backup/mydatabase_$(date +%F).sql.gz

Pour sauvegarder toutes les bases de données sur le serveur :

pg_dumpall -U myuser | gzip > /backup/postgres_all_$(date +%F).sql.gz

Sauvegarde MySQL

Pour MySQL et MariaDB, utilisez l'utilitaire mysqldump.

Exemple de sauvegarde d'une seule base de données :

mysqldump -u myuser -p mydatabase > /backup/mydatabase_$(date +%F).sql

Lorsque vous exécutez cette commande, le système vous demandera le mot de passe de l'utilisateur.

Pour sauvegarder toutes les bases de données :

mysqldump -u myuser -p --all-databases | gzip > /backup/mysql_all_$(date +%F).sql.gz

Pour inclure les procédures stockées et les déclencheurs, ajoutez les options --routines --triggers.

Sauvegarde vers CloudBox

CloudBox d'INTROSERV est une solution de stockage cloud prenant en charge plusieurs protocoles de connexion (y compris rsync, scp, rsync sur SSH, WebDAV). La facilité d'utilisation de CloudBox simplifie considérablement les tâches de téléchargement, de gestion et de récupération des données.

Vous pouvez l'utiliser comme emplacement distant pour stocker vos sauvegardes de base de données. Voici les détails de configuration et des exemples de scripts.

Étape 1. Obtenir l'accès à CloudBox

Commandez l'un des plans CloudBox disponibles sur notre site web — https://introserv.com/solutions/cloudbox/

Après paiement, le service devient disponible en quelques minutes. Après l'activation du service, vous recevrez les détails de connexion :

  • adresse du serveur (box$$$$$.introserv.cloud)
  • nom d'utilisateur (box$$$$$) et mot de passe

Étape 2. Connexion et synchronisation en utilisant rsync ou scp

Utilisation de rsync (recommandé) :

rsync -avz -e "ssh -p 22" /backup/ user@cloudbox-server:/path_to_cloudbackups/

Où :

  • user — nom d'utilisateur CloudBox ;
  • cloudbox-server — adresse de connexion ;
  • /path_to_cloudbackups/ — chemin sur CloudBox.

Pour un fonctionnement automatisé, il est conseillé de configurer des clés SSH.

1) Générez une clé publique :

ssh-keygen -t rsa

2) Copiez le contenu du fichier de clé publique créé, par exemple /root/.ssh/id_rsa.pub dans le presse-papiers.

3) Allez dans la section "Profil" (survolez l'icône utilisateur en haut à droite), ajoutez le contenu de la clé dans le champ "Clés publiques" et enregistrez les paramètres.

Paramètres de profil CloudBox
Champ des clés publiques CloudBox

Après cela, rsync fonctionnera sans invites de mot de passe, ce qui est pratique pour les tâches cron.

Alternative — scp :

scp /backup/mysql_mydatabase.sql.gz user@cloudbox-server:/path_to_cloudbackups/

Étape 3. Connexion et synchronisation en utilisant rclone

Si vous souhaitez utiliser rclone pour interagir avec CloudBox, configurez-le comme suit.

1) Installez rclone :

sudo apt install rclone

2) Démarrez la configuration :

rclone config

Lors de la configuration, sélectionnez :

  • n — pour créer un nouveau distant ;
  • nom, par exemple cloudbox ;
  • type de stockage — choisissez sftp ou ssh ;
  • saisissez l'adresse du serveur au format box$$$$$.introserv.cloud, le nom d'utilisateur au format box$$$$$, le port (SSH — par défaut 22), le chemin du répertoire ;
  • effectuez l'autorisation (si nécessaire).

Testez la connexion :

rclone ls cloudbox:/path_to_cloudbackups/

Copiez les données de sauvegarde :

rclone copy /backup/ cloudbox:/db-backups/ --progress

Synchronisez avec suppression des fichiers manquants localement :

rclone sync /backup/ cloudbox:/db-backups/ --progress

Si nécessaire — cryptez les fichiers avant le transfert :

rclone copy /backup/ cloudbox:/db-backups/ --progress --crypt

Étape 4. Exemple de script d'automatisation avec CloudBox

Créez le script /usr/local/bin/db_backup_cloudbox.sh :

#!/bin/bash DATE=$(date +%F) BACKUP_DIR="/backup/$DATE" mkdir -p $BACKUP_DIR # PostgreSQL pg_dump -U myuser mydatabase | gzip > $BACKUP_DIR/postgres_mydatabase.sql.gz # MySQL mysqldump -u myuser -p mydatabase | gzip > $BACKUP_DIR/mysql_mydatabase.sql.gz # Téléchargement vers CloudBox rsync -avz -e "ssh -p 22" $BACKUP_DIR/ user@cloudbox-server:/path_to_cloudbackups/$DATE/ # Téléchargement vers CloudBox (option rclone, décommentez si utilisé) # rclone copy $BACKUP_DIR/ cloudbox:/db-backups/$DATE/ --progress # Supprimez les sauvegardes de plus de 7 jours find /backup/ -type f -mtime +7 -delete

Ajoutez ensuite une tâche cron (le script s'exécute quotidiennement à 2h00) :

0 2 * * * /usr/local/bin/db_backup_cloudbox.sh

Considérations importantes :

  • Assurez-vous que la connexion à CloudBox est stable et que la bande passante est suffisante.
  • Mettez en place une surveillance : vérifiez que les fichiers sont effectivement copiés.
  • Testez périodiquement la restauration à partir des sauvegardes CloudBox.
  • Lorsque vous utilisez des données confidentielles — envisagez de crypter les sauvegardes.

Copie vers un serveur Linux distant via SSH

Si vous souhaitez stocker les sauvegardes non seulement localement mais aussi sur un autre serveur, utilisez rsync ou scp.

Utilisation de rsync (recommandé, car il ne copie que les modifications) :

rsync -avz -e "ssh -p 22" /backup/ [email protected]:/remote_backups/

Explication des paramètres :

  • user — nom d'utilisateur sur le serveur distant ;
  • remote.server — adresse IP ou nom de domaine du serveur distant ;
  • /remote_backups/ — chemin pour stocker les sauvegardes.

Pour fonctionner sans entrer de mot de passe, configurez des clés SSH.

Générez des clés SSH :

ssh-keygen -t rsa

Copiez la clé sur le serveur distant :

ssh-copy-id [email protected]

Après cela, rsync fonctionnera sans invites de mot de passe, ce qui est pratique pour les tâches cron.

Alternative — en utilisant scp :

scp /backup/mysql_mydb.sql.gz [email protected]:/remote_backups/

Copie vers un stockage cloud via rclone

Si vous devez stocker des sauvegardes dans le cloud (Google Drive, Dropbox, Amazon S3, etc.), utilisez rclone — un outil universel pour synchroniser les données avec divers services cloud.

Installation :

sudo apt install rclone

Configuration :

rclone config

Suivez les étapes de configuration interactive :

  1. Sélectionnez n pour créer une nouvelle connexion ;
  2. Entrez un nom, par exemple remote ;
  3. Sélectionnez le type de stockage (par exemple s3, drive, dropbox) ;
  4. Entrez les clés d'accès ou autorisez via le navigateur.

Vérifiez la connexion :

rclone ls remote:path

Exemple de téléchargement de sauvegardes vers le cloud :

rclone copy /backup/ remote:db-backups/ --progress

Commande de synchronisation (supprime les fichiers manquants localement) :

rclone sync /backup/ remote:db-backups/ --progress

Vous pouvez également crypter les fichiers avant de les télécharger :

rclone copy /backup/ remote:db-backups/ --progress --crypt

Sécurité et contrôle

  • Stockez les sauvegardes dans au moins deux emplacements — localement et à distance.
  • Vérifiez régulièrement que les sauvegardes sont créées et téléchargées avec succès.
  • Effectuez des restaurations de test au moins une fois par mois.
  • Créez des fichiers contenant des données sensibles si vous utilisez des clouds publics :

gpg -c /backup/mysql_mydatabase.sql.gz

  • Assurez-vous des permissions de fichier appropriées pour /backup et sécurisez vos identifiants de base de données.

Restauration à partir de la sauvegarde

PostgreSQL :

gunzip < backup.sql.gz | psql -U myuser -d mydatabase

MySQL :

gunzip < backup.sql.gz | mysql -u myuser -p mydatabase

Conclusion

La sauvegarde des bases de données PostgreSQL et MySQL est une procédure simple mais d'une importance cruciale. Même l'infrastructure la plus fiable ne peut vous protéger des erreurs humaines ou des défaillances techniques. La meilleure stratégie est des sauvegardes automatisées régulières stockées sur au moins un serveur externe et dans le cloud, avec des tests de récupération périodiques.

En utilisant une combinaison de pg_dump, mysqldump, rsync, rclone et cron, vous pouvez construire un système de sauvegarde fiable et entièrement automatisé sans aucun logiciel tiers payant. Cette approche est facile à mettre en œuvre et convient à tous les systèmes Linux.

VAT

  • Other

    Ex. VAT

    0%
  • austria

    Austria

    20%
  • Belgium

    Belgium

    21%
  • Bulgaria

    Bulgaria

    20%
  • Croatia

    Croatia

    25%
  • Cyprus

    Cyprus

    19%
  • Czech Republic

    Czech Republic

    21%
  • Denmark

    Denmark

    25%
  • Estonia

    Estonia

    22%
  • France

    France

    20%
  • Finland

    Finland

    24%
  • Germany

    Germany

    19%
  • Greece

    Greece

    24%
  • Hungary

    Hungary

    27%
  • Ireland

    Ireland

    23%
  • Italy

    Italy

    22%
  • Latvia

    Latvia

    21%
  • Lithuania

    Lithuania

    21%
  • Luxembourg

    Luxembourg

    17%
  • Malta

    Malta

    18%
  • Netherlands

    Netherlands

    21%
  • Poland

    Poland

    23%
  • Portugal

    Portugal

    23%
  • Romania

    Romania

    19%
  • Slovakia

    Slovakia

    20%
  • Slovenia

    Slovenia

    22%
  • Spain

    Spain

    21%
  • Sweden

    Sweden

    25%
  • USA

    USA

    0%
european
states
  • germany
  • Español
  • Italiano
  • Poland
  • Русский
  • Slovenski
  • Türkçe
  • ukraine
  • kingdom
  • French
  • Hrvatska
  • Other
  • Austria
  • Belgium
  • Bulgaria
  • Croatia
  • Cyprus
  • Czech Republic
  • Denmark
  • Estonia
  • Finland
  • France
  • Germany
  • Greece
  • Hungary
  • Ireland
  • Italy
  • Latvia
  • Lithuania
  • Luxembourg
  • Malta
  • Netherlands
  • Poland
  • Portugal
  • Romania
  • Slovakia
  • Slovenia
  • Spain
  • Sweden
  • USA