Sauvegarder les données d'une application
Une sauvegarde non testée est une hypothèse. Pour une application Python, les données se répartissent entre fichiers téléversés, base de données et configuration. L'objectif est d'obtenir une copie cohérente, lisible ailleurs que sur le serveur, et dont la restauration a déjà été vérifiée.
1. Inventorier ce qui compte
| Donnée | Emplacement courant | Méthode |
|---|---|---|
| Fichiers utilisateurs | dossier uploads/ |
archive tar |
| Base SQLite | fichier .db ou .sqlite3 |
sauvegarde native SQLite |
| MySQL ou PostgreSQL | serveur de base | mysqldump ou pg_dump |
| Configuration | variables du panneau | export chiffré, hors dépôt |
| Code | dépôt Git | clone ou archive de version |
Les logs, caches, environnements virtuels et fichiers __pycache__ ne méritent pas d'être sauvegardés : ils sont recréables et alourdissent l'archive. En revanche, un jeton ou une clé d'application est une donnée critique : sans lui, l'application restaurée ne redémarre pas.
2. Copier de façon cohérente
Copier un fichier de base pendant une écriture peut produire une image incohérente. Utilisez la méthode propre à chaque moteur.
SQLite dispose d'une commande de sauvegarde qui gère le mode WAL :
sqlite3 /var/www/mon-app/app.db ".backup '/tmp/app.db'"MySQL et MariaDB, sur des tables InnoDB :
mysqldump --single-transaction --routines --triggers \
--default-character-set=utf8mb4 \
-u utilisateur -p VOTRE_BASE > /tmp/base.sqlPostgreSQL :
pg_dump -Fc -U utilisateur VOTRE_BASE > /tmp/base.dumpPour les fichiers, créez une archive en excluant l'inutile :
tar -czf /tmp/app-fichiers.tar.gz \
--exclude='.venv' --exclude='__pycache__' \
-C /var/www mon-appSur l'hébergement d'applications, utilisez le gestionnaire de fichiers du panneau ou l'accès SFTP s'il est proposé. Si le panneau propose une sauvegarde de base, déclenchez-la depuis l'interface prévue ; sinon, exportez la base avec l'outil mis à disposition. N'inventez pas de commande shell si le panneau n'en fournit pas.
3. Sortir la copie du serveur
Une archive laissée dans le même disque ne protège ni d'une suppression accidentelle ni d'une panne. Téléchargez-la, puis copiez-la vers une autre machine :
scp /tmp/app-fichiers.tar.gz utilisateur@machine-de-sauvegarde:/sauvegardes/Conservez trois copies, sur deux supports, dont une hors site. Si l'archive contient des données personnelles, chiffrez-la avant transfert avec age ou gpg. Nommez les fichiers avec la date et l'application, par exemple mon-app-2026-11-07.tar.gz.
4. Restaurer et tester
Restaurez d'abord dans un emplacement isolé, jamais par-dessus la production :
mkdir -p /tmp/restauration
tar -xzf mon-app-2026-11-07.tar.gz -C /tmp/restaurationPour la base, créez une base de test, importez le dump, comparez le nombre de lignes des tables principales et ouvrez l'application. Vérifiez les permissions des fichiers restaurés. Une restauration qui échoue silencieusement est plus dangereuse qu'une absence de sauvegarde, car elle donne une fausse assurance.
5. Automatiser et vérifier
- Planifiez la copie quotidienne avec
cronsur un VPS, ou utilisez la sauvegarde du panneau si elle est proposée. - Conservez par exemple sept copies quotidiennes et quatre hebdomadaires.
- Surveillez l'échec de la tâche : une sauvegarde vide ou de taille anormale doit alerter.
- Refaites un test de restauration après chaque changement majeur de schéma.
Les sauvegardes incluses dans une offre ne remplacent jamais une copie hors site testée.
Publicité
Cet article vous a-t-il aidé ?
À lire aussi
- Comprendre les limites de ressourcesRAM, CPU et disque : mesurer, reconnaître l'épuisement et choisir l'offre adaptée.
- Protéger les secrets d'une applicationVariables d'environnement, rotation, journaux et dépôt Git : garder les secrets hors du code.
- Utiliser un environnement virtuel PythonIsoler les dépendances avec venv, puis adapter la méthode à l'hébergement géré et au VPS.