espo-deploy/rmm-tasks/ESPO-11-Snapshot-verwerfen.sh
Gordon Zimm c2b37dd8fa Nummernkreise: Update-Block beginnt bei ESPO-10
Aus ESPO-04 und ESPO-05 werden ESPO-10 und ESPO-11. Ein Zehnerkreis
kennzeichnet den Block und beginnt bei x0; 0x bleibt der Weg von der leeren VM
zur laufenden Instanz, 1x das Aktualisieren, 2x Betrieb und Ueberwachung.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-09-24 14:42:04 +02:00

44 lines
2.0 KiB
Bash
Executable File

#!/bin/bash
# ESPO-11-Snapshot-verwerfen - raeumt den Rueckweg weg, nachdem die Instanz von Hand geprueft wurde.
# Aufruf: ohne Argumente.
# Laeuft bewusst erst nach der Pruefung: Solange der Snapshot besteht, kostet jeder Schreibvorgang
# auf /srv einen zusaetzlichen Kopiervorgang, und ein vollgelaufener Snapshot wird still verworfen.
set -u
# Standzeile: zeigt im Protokoll, welche Fassung tatsaechlich gelaufen ist.
echo "ESPO-11-Snapshot-verwerfen, Skriptstand 2026-09-24"
VG=ubuntu-vg
SNAPSHOT=srv-vor-update
fehler() { echo "FEHLER: $*"; echo "ESPO11_ERGEBNIS: FEHLER"; exit 1; }
# 1. Vorbedingungen.
[ "$(id -u)" -eq 0 ] || fehler "nicht als root gestartet"
command -v lvremove >/dev/null || fehler "LVM-Werkzeuge fehlen"
# 2. Ohne Snapshot gibt es nichts zu verwerfen - das ist kein Erfolg, sondern ein Hinweis:
# Entweder lief kein Update, oder der Snapshot ist bereits weg (auch stillschweigend, siehe 3).
lvs --noheadings -o lv_name "$VG" 2>/dev/null | grep -qw "$SNAPSHOT" \
|| fehler "kein Snapshot '$SNAPSHOT' vorhanden - lief ESPO-10 ueberhaupt?"
# 3. Zustand festhalten, bevor er verschwindet. Ein 'I' im Attributfeld heisst: bereits ungueltig,
# der Rueckweg haette also gar nicht mehr getragen. Das gehoert ins Protokoll.
echo "--- Zustand vor dem Verwerfen"
lvs -o lv_name,lv_attr,origin,lv_size,data_percent "$VG/$SNAPSHOT" 2>/dev/null | sed 's/^/ /'
ATTR="$(lvs --noheadings -o lv_attr "$VG/$SNAPSHOT" 2>/dev/null | tr -d ' ')"
case "$ATTR" in
*I*) echo "HINWEIS: Der Snapshot war bereits ungueltig (vollgelaufen) - ein Rueckweg bestand nicht mehr." ;;
esac
# 4. Verwerfen.
lvremove -y "$VG/$SNAPSHOT" >/dev/null 2>&1 || fehler "Snapshot liess sich nicht entfernen"
lvs --noheadings -o lv_name "$VG" 2>/dev/null | grep -qw "$SNAPSHOT" \
&& fehler "Snapshot ist nach lvremove immer noch da"
# 5. Ergebnis zeigen: freie Extents sind die Voraussetzung fuer das naechste Update.
echo "--- Danach"
echo "Snapshot '$SNAPSHOT' verworfen."
vgs --units g -o vg_name,vg_size,vg_free "$VG" 2>/dev/null | sed 's/^/ /'
echo "ESPO11_ERGEBNIS: OK"