Files
librodrome/actes/annexes/2026-10-26-persistance-messages-veille.sh
T
YvvandClaude Opus 5.5 c32d88bec1 actes : persistance des messages — diagnostic et dossier préparé
Diagnostic en lecture seule sur sonic (26/10) : le conteneur tourne
dans /app, les montages visent /src/data et /src/public (dossiers
vides de l'hôte), les messages vivent dans la couche du conteneur et
la graine est rejouée à chaque déploiement ; ADMIN_GIT_SYNC=false,
pas de .git, aucun commit [admin]. Rien perdu depuis le 29/09 ;
avant, invérifiable.

Dossier PRÉPARÉ (mot « déploie ») : sauvegarde et volume semé sur
sonic, veille de l'ancien conteneur, push de a6ba0a6
(fix/persistance-messages), vérification et redémarrage à froid.
Scripts déroulés en entier en local avec le vrai docker.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-26 19:46:41 +01:00

33 lines
1.3 KiB
Bash

#!/usr/bin/env bash
# Acte 2026-10-26-persistance-messages — étape 2, sur sonic, sous yvv, en arrière-plan.
# Relève toutes les 5 s le fichier de messages de l'ancien conteneur, jusqu'à ce
# que le déploiement le remplace (ou 30 min au plus). Lectures seulement, sauf
# l'écriture de la relève dans le dossier de sauvegarde.
# Lancement : ssh yvv@161.97.174.60 'setsid nohup bash /tmp/lb-veille.sh >/tmp/lb-veille.log 2>&1 &' </dev/null
set -uo pipefail
C=lpk-librodrome-main-app-1
D="$HOME/librodrome-sauvegardes/2026-10-26"
[ -s "$D/ancien-conteneur.id" ] || { echo "ARRÊT : étape 1 non jouée"; exit 1; }
old=$(cat "$D/ancien-conteneur.id")
umask 077
i=0
while [ "$(docker inspect -f '{{.Id}}' "$C" 2>/dev/null)" = "$old" ] && [ "$i" -lt 360 ]; do
# par l'identifiant : après la bascule, le nom désigne déjà le nouveau conteneur
if docker exec "$old" cat /app/data/messages.yml > "$D/.releve.tmp" 2>/dev/null && [ -s "$D/.releve.tmp" ]; then
mv "$D/.releve.tmp" "$D/messages-derniere-releve.yml"
date -u +%FT%TZ > "$D/derniere-releve.date"
fi
i=$((i + 1))
sleep 5
done
rm -f "$D/.releve.tmp"
if [ "$i" -ge 360 ]; then
echo "FIN SANS BASCULE : 30 min écoulées, l'ancien conteneur tourne toujours"
else
date -u +%FT%TZ > "$D/veille.fin"
echo "ancien conteneur remplacé, constaté à $(cat "$D/veille.fin")"
fi
rm -f -- "$0"