Outils pour utilisateurs

Outils du site


amipo_documentation_backup

Différences

Ci-dessous, les différences entre deux révisions de la page.

Lien vers cette vue comparative

Les deux révisions précédentes Révision précédente
Prochaine révision
Révision précédente
amipo_documentation_backup [2020/01/15 05:48]
bigMax
amipo_documentation_backup [2020/01/27 15:45] (Version actuelle)
bigMax
Ligne 1: Ligne 1:
 <​markdown>​ <​markdown>​
  
-# Documentation des Backup ​AMIPO+# Documentation des Sauvegardes ​AMIPO
  
-## Todo Dump +## Réalisation des Sauvegardes
-* Changer le schema de nextcloud (ne pas laisser dans public) +
-* Ne dumper que le schema nextcloud +
-* Dumper le schema au format text et les data au format custom ? +
-* Changer le tar : faire un cd avant le tar pour ne pas archiver les chemins absolus+
  
-``` psql +### Fichiers sauvegardées 
-set search_path to public,​nextcloud;​ +*  Le schéma de la base de données ​ 
-alter schema public rename to nextcloud; +*  Les données de la base de données 
-create schema public; +*  Les données hors base (le système de fichier /var/nextcloud/data) 
-alter role nextcloud ​set search_path to nextcloud; +*  Les fichiers exécutables de l'​application ​nextcloud ​(/​var/​www/​nuage) 
-```+*  Les fichiers de logs du nextcloud ​de prod (/​var/​log/​nuage-prod.log*) 
 +*  Les fichiers de config nginx (/​etc/​nginx)
  
-``` bash + 
-pg_dump ​--username=nextcloud_backup ​-d nextcloud -h localhost ​--schema-only -n nextcloud | gzip > $BACKUP_DIR/​schema-nextcloud-dump.psql.gz +### Scripts de Sauvegarde 
-pg_dump ​--username=nextcloud_backup ​-d nextcloud -h localhost --data-only -n nextcloud ​-Fc $BACKUP_DIR/data-nextcloud-dump.custom+Les scripts de backups sont entreposés ici : https://​framagit.org/​amipo/​amipo-admin-code/​tree/​master/​backups 
 +Actuellement il y a 2 scripts : 
 +*  backup_nextcloud.sh : effectue le backup de l'​instance nextcloud de prod 
 +*  restore_nextcloud_maintenance.sh : s'​assure que l'​instance nextcloud de prod n'est plus en mode maintenance 
 + 
 + 
 +### Principes de la Sauvegarde 
 + ​Création ​d'un nouveau dossier pour recueillir les fichiers à sauvegardées dans le dossier conteneur de backups (/backups/nextcloud ​sur le FS / pour profiter de ses 20 GB que l'on ne peut pas réduire) 
 + Mise en mode maintenance de l'​instance Nextcloud (mode maintenance ON) 
 + ​Création du dump de la BD (schéma et data) 
 + Copie du système de fichier "​data"​ de Nextcloud 
 + ​Remise en route de l'​instance Nextcloud (mode maintenance OFF) 
 + Copie des autres systèmes de fichiers (exécutables,​ logs, config, ​...) 
 +-  Création d'une archive compréssée au format tar.gz à partir du nouveau dossier créé à l'​étape 1. 
 + ​Suppression du dossier créé à l'​étape 1. 
 + ​Vérification et Suppression des anciennes archives vieilles de plus de 7 jours. 
 + 
 + 
 +### Sécuritées 
 + ​Actuellement,​ la suppression des archives n'est effectué que pour les archives vieilles de plus de 7 jours, et si il existe au moins 7 fichiers présent dans le dossier contenant les archives. 
 +-  Le script de backup ne plante pas en cas d'​erreur de copie de fichiers pour tenter de backup le plus possibles de données. Pour chaque plantage durant une copie, un compteur est incrémenté pour indiquer le nombre d'​erreur de copie dans le nom de l'​archive et ainsi indiquer la "​qualité"​ du backup. 
 +-  Si le script de backup vient à planter, on execute alors le script restore_nextcloud_maintenance.sh pour ne pas laisser l'​instance ​nextcloud ​en mode maintenance. 
 + Un rapport est envoyé par email après chaque déroulement des backups. Ce rapport contient les logs des scripts, et un état du dossier contenant les ancienes archives (nombre d'​archives et espace disque restant). 
 + 
 + 
 +### Automatisation de la Sauvegarde 
 +*  Le backup est automatisé par un cronjob de l'​utilisateur www-data. Pour le voir : `crontab ​--u www-data`. Cela devrait être :  
 +``` cron 
 +# Nextcloud backup 
 +0  2  *  *  * ( export PGPASSWORD="​XXXXX";​ /​var/​amipo-admin-code/​backups/​backup_nextcloud.sh 2>&1 || /var/amipo-admin-code/​backups/​restore_nextcloud_maintenance.sh 2>&1 ) | mailx -s "​[AMIPO Admin] Sorties de backup nocturne de Gits." admin
 ``` ```
 +*  Le cronjob est exécuté chaque nuit à 02h00.
 +*  Les sorties d'​erreur et standard du backup sont envoyés par email à l'​alias admin qui est configuré dans /​etc/​aliases
 +
 +
 +### Sauvegarde de la base de données
 +*  Les sauvegardes de la base de données sont séparées en 2 fichiers : la structure et les données.
 +*  La sauvegarde de la structure des données est sauvegardé au format texte compressé (.psql.gz).
 +*  Les données sont sauvegardé au format custom postgres déjà compréssé (.custom), cela permet une restauration plus rapide.
 +*  On ne sauvegarde que le contenu du schéma "​nextcloud"​.
 +*  Un utilisateur spécifique dans la BD réalise les sauvegardes : "​nextcloud_backup"​ avec des privilèges minimaux.
 +
  
-## Restauration d'un backup+## Restauration d'une Sauvegarde
  
 ### Création de la BD dans lequel sera effectué la restauration ### Création de la BD dans lequel sera effectué la restauration
amipo_documentation_backup.1579063722.txt.gz · Dernière modification: 2020/01/15 05:48 par bigMax