Modifications pour le document Sauvegarde
Modifié par john le 2026/10/03 20:01
Résumé
-
Propriétés de la Page (1 modifications, 0 ajouts, 0 suppressions)
Détails
- Propriétés de la Page
-
- Contenu
-
... ... @@ -14,14 +14,11 @@ 14 14 Chaque exécution : 15 15 16 16 * exporte toutes les bases en SQL dans ##<APPDATA>/dumps## ; 17 -* attend la fin de la sauvegarde Borg de [[Nextcloud>>Wiki Batcave John.Infrastructure.ServeurPrincipal.Nextcloud.WebHome]] AIO (planifiée à 3 h 00), au plus une heure ; 18 -* sauvegarde les données des conteneurs, la bibliothèque Immich, le contenu de Joplin et le dépôt Borg de Nextcloud AIO, en excluant les fichiers bruts des bases et les données brutes de Nextcloud ; 17 +* sauvegarde les données des conteneurs, la bibliothèque Immich et le contenu de Joplin, en excluant les fichiers bruts des bases ; 19 19 * supprime les instantanés de plus de 30 jours. 20 20 21 21 {{info}} 22 22 Les fichiers bruts d'une base en fonctionnement ne sont pas fiables pour une restauration. Ce sont les dumps SQL qui font foi. 23 - 24 -Nextcloud AIO fait exception : il n'y a pas de dump, sa base, ses fichiers et sa configuration sont dans son propre dépôt Borg, cohérent car produit conteneurs arrêtés. Plakar copie ce dépôt tel quel, d'où l'attente de la fin de la sauvegarde Borg : copier un dépôt en cours d'écriture donnerait une copie incohérente. 25 25 {{/info}} 26 26 27 27 == Mise en place du dépôt == ... ... @@ -131,6 +131,11 @@ 131 131 || attention "dump $c échoué" 132 132 done 133 133 131 +# Nextcloud : dump via l'utilisateur applicatif 132 +docker exec "$(docker ps -q -f name=nextcloud_db)" sh -c 'exec mariadb-dump -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE"' \ 133 + > "$DUMPS/nextcloud.sql" 2>/dev/null \ 134 + || attention "dump nextcloud échoué" 135 + 134 134 # Dumps PostgreSQL 135 135 for c in joplin-db flus-db wallabag-db immich_postgres vikunja-db jellystat-db n8n-postgres dawarich_db; do 136 136 docker exec "$c" sh -c 'exec pg_dumpall -U "$POSTGRES_USER"' \ ... ... @@ -138,34 +138,21 @@ 138 138 || attention "dump $c échoué" 139 139 done 140 140 141 -# Attente de la fin de la sauvegarde Borg d'AIO (planifiée à 3h00) 142 -attente=0 143 -while docker ps --format '{{.Names}}' | grep -qx nextcloud-aio-borgbackup; do 144 - if [ "$attente" -ge 3600 ]; then 145 - attention "Borg AIO encore en cours après 1 h : dépôt Borg possiblement incohérent" 146 - break 147 - fi 148 - sleep 60 149 - attente=$((attente + 60)) 150 -done 151 - 152 -# Backup avec exclusions : core dumps, binlogs, fichiers bruts des bases 153 -# et données brutes de Nextcloud AIO (déjà dans le dépôt Borg, de façon cohérente) 143 +# Sauvegarde, sans core dumps, binlogs ni fichiers bruts des bases 154 154 plakar --concurrency 2 -keyfile "$KEYFILE" at "$REPO" backup \ 155 155 -ignore "**/joplin-app/core.*" \ 156 - -ignore "**/Nextcloud -AIO/data/**" \146 + -ignore "**/Nextcloud/DB/**" \ 157 157 -ignore "**/log/mysql/**" \ 158 158 -ignore "**/xwiki/mariadb/**" \ 159 159 -ignore "**/store.bak.*/**" \ 160 160 <APPDATA> \ 161 161 <BIBLIOTHEQUE_IMMICH> \ 162 - <CONTENU_JOPLIN> \ 163 - <DEPOT_BORG_AIO> 152 + <CONTENU_JOPLIN> 164 164 165 165 # Rétention : 30 jours glissants 166 166 plakar -keyfile "$KEYFILE" at "$REPO" rm -before 30d -apply 167 -notifier "✅ Sauvegarde terminée" 168 -{{/code}} 156 +notifier "✅ Sauvegarde terminée"{{/code}} 157 +~{~{/code}} 169 169 170 170 Tâche cron, ##/etc/cron.d/backup-plakar## : 171 171 ... ... @@ -180,7 +180,6 @@ 180 180 |=Message|=Signification 181 181 |✅ Sauvegarde terminée|Tout s'est bien passé 182 182 |⚠️ Sauvegarde : dump … échoué|Un dump de base a échoué, la sauvegarde a continué sans lui 183 -|⚠️ Sauvegarde : Borg AIO encore en cours après 1 h …|La sauvegarde Borg de Nextcloud n'était pas finie : la copie du dépôt Borg de cette nuit peut être incohérente, celle des nuits précédentes reste utilisable 184 184 |❌ Sauvegarde interrompue à la ligne …|Erreur bloquante, la sauvegarde n'a pas eu lieu 185 185 186 186 Si aucun message n'arrive un matin, le script n'a pas démarré (serveur éteint, tâche cron cassée). ... ... @@ -228,8 +228,6 @@ 228 228 docker exec -i <CONTENEUR> sh -c 'exec psql -U "$POSTGRES_USER" -d postgres' < /tmp/restore/<CHEMIN>/dumps/<CONTENEUR>.sql 229 229 {{/code}} 230 230 231 -Restaurer Nextcloud AIO : restaurer le dossier ##<DEPOT_BORG_AIO>## sur l'hôte, déployer le mastercontainer sur une installation neuve, puis choisir la restauration dans l'interface AIO (chemin du dépôt, mot de passe Borg, archive). Voir la page [[Nextcloud>>Wiki Batcave John.Infrastructure.ServeurPrincipal.Nextcloud.WebHome]]. 232 - 233 233 {{warning}} 234 234 Une sauvegarde qui n'a jamais été restaurée n'est pas une sauvegarde vérifiée. Faire un essai de restauration de temps en temps, dans un dossier temporaire. 235 235 {{/warning}} ... ... @@ -241,4 +241,3 @@ 241 241 |Avertissements VFS|Cache local incohérent|Vider ##~~/.cache/plakar## de root 242 242 |Transfert coupé (EOF SFTP) sur de gros fichiers|Lien Wi-Fi du dépôt instable|Économie d'énergie Wi-Fi désactivée sur le Pi ; passer à ##~-~-concurrency 1## pour une première sauvegarde volumineuse 243 243 |Déconnexion du SSD pendant la sauvegarde|Pont USB en mode UAS|Voir la configuration SSD sur la page [[Raspberry Pi>>Wiki Batcave John.Infrastructure.RaspberryPi.WebHome]] 244 -