0 Votes

Modifications pour le document Sauvegarde

Modifié par john le 2026/10/03 20:01

Depuis la version 6.1
modifié par john
sur 2026/09/19 20:00
Commentaire de modification : Il n'y a aucun commentaire pour cette version
À la version 4.1
modifié par john
sur 2026/09/19 19:19
Commentaire de modification : Il n'y a aucun commentaire pour cette version

Résumé

Détails

Propriétés de la Page
Contenu
... ... @@ -101,19 +101,11 @@
101 101  
102 102  == Script ==
103 103  
104 -{{code language="bash"}}#!/bin/bash
104 +{{code language="bash"}}
105 +#!/bin/bash
105 105  set -euo pipefail
106 -umask 077
107 +umask 077 # Ajout : dumps lisibles par root seul
107 107  
108 -# Alertes Telegram
109 -. /root/.backup-telegram
110 -notifier() {
111 - curl -fsS -m 10 "https://api.telegram.org/bot$TG_TOKEN/sendMessage" \
112 - -d chat_id="$TG_CHAT" --data-urlencode text="$1" >/dev/null || true
113 -}
114 -attention() { echo "ATTENTION: $1" >&2; notifier "⚠️ Sauvegarde : $1"; }
115 -trap 'notifier "❌ Sauvegarde interrompue à la ligne $LINENO"' ERR
116 -
117 117  REPO="sftp://<UTILISATEUR>@<HOTE_DEPOT>:<CHEMIN_DEPOT>"
118 118  KEYFILE="<FICHIER_PHRASE_SECRETE>"
119 119  DUMPS="<APPDATA>/dumps"
... ... @@ -125,19 +125,19 @@
125 125   > "$DUMPS/$c.sql" 2>/dev/null \
126 126   || docker exec "$c" sh -c 'exec mariadb-dump -uroot -p"${MYSQL_ROOT_PASSWORD:-$MARIADB_ROOT_PASSWORD}" --all-databases' \
127 127   > "$DUMPS/$c.sql" 2>/dev/null \
128 - || attention "dump $c échoué"
120 + || echo "ATTENTION: dump $c échoué" >&2
129 129  done
130 130  
131 131  # Nextcloud : dump via l'utilisateur applicatif
132 132  docker exec "$(docker ps -q -f name=nextcloud_db)" sh -c 'exec mariadb-dump -u"$MYSQL_USER" -p"$MYSQL_PASSWORD" "$MYSQL_DATABASE"' \
133 133   > "$DUMPS/nextcloud.sql" 2>/dev/null \
134 - || attention "dump nextcloud échoué"
126 + || echo "ATTENTION: dump nextcloud échoué" >&2
135 135  
136 136  # Dumps PostgreSQL
137 -for c in joplin-db flus-db wallabag-db immich_postgres vikunja-db jellystat-db n8n-postgres dawarich_db; do
129 +for c in joplin-db flus-db wallabag-db immich_postgres vikunja-db jellystat-db n8n-postgres dawarich_db; do # Ajout : dawarich_db
138 138   docker exec "$c" sh -c 'exec pg_dumpall -U "$POSTGRES_USER"' \
139 139   > "$DUMPS/$c.sql" 2>/dev/null \
140 - || attention "dump $c échoué"
132 + || echo "ATTENTION: dump $c échoué" >&2
141 141  done
142 142  
143 143  # Sauvegarde, sans core dumps, binlogs ni fichiers bruts des bases
... ... @@ -148,13 +148,12 @@
148 148   -ignore "**/xwiki/mariadb/**" \
149 149   -ignore "**/store.bak.*/**" \
150 150   <APPDATA> \
151 - <BIBLIOTHEQUE_IMMICH> \
143 + <BIBLIOTHEQUE_IMMICH>\
152 152   <CONTENU_JOPLIN>
153 153  
154 154  # Rétention : 30 jours glissants
155 155  plakar -keyfile "$KEYFILE" at "$REPO" rm -before 30d -apply
156 -notifier "✅ Sauvegarde terminée"{{/code}}
157 -~{~{/code}}
148 +{{/code}}
158 158  
159 159  Tâche cron, ##/etc/cron.d/backup-plakar## :
160 160  
... ... @@ -162,28 +162,6 @@
162 162  30 3 * * * root /root/backup-plakar.sh >> /var/log/backup-plakar.log 2>&1
163 163  {{/code}}
164 164  
165 -== Alertes ==
166 -
167 -Le script envoie un message Telegram à chaque exécution :
168 -
169 -|=Message|=Signification
170 -|✅ Sauvegarde terminée|Tout s'est bien passé
171 -|⚠️ Sauvegarde : dump … échoué|Un dump de base a échoué, la sauvegarde a continué sans lui
172 -|❌ Sauvegarde interrompue à la ligne …|Erreur bloquante, la sauvegarde n'a pas eu lieu
173 -
174 -Si aucun message n'arrive un matin, le script n'a pas démarré (serveur éteint, tâche cron cassée).
175 -
176 -Jeton du bot et identifiant du groupe dans ##/root/.backup-telegram##, lisible par root seul :
177 -
178 -{{code language="bash"}}
179 -TG_TOKEN="<JETON_BOT>"
180 -TG_CHAT="<ID_GROUPE>"
181 -{{/code}}
182 -
183 -{{warning}}
184 -Dans le script, chaque ligne continuée doit se terminer par ##\## sans rien après, pas même un espace. Une barre oblique inverse suivie d'un espace ne continue plus la ligne : c'est ce qui a interrompu plusieurs sauvegardes en septembre 2026. Contrôle après toute modification : ##sudo bash -n /root/backup-plakar.sh##, et ##cat -A## pour voir les caractères invisibles en fin de ligne.
185 -{{/warning}}
186 -
187 187  == Ajouter une base ==
188 188  
189 189  Ajouter le nom du conteneur dans la boucle MariaDB ou PostgreSQL du script, puis exclure ses fichiers bruts avec un ##-ignore## s'ils se trouvent dans ##<APPDATA>##.