<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="de">
	<id>https://wiki.fam-puls.de/index.php?action=history&amp;feed=atom&amp;title=Scripts%2FDocker_Restore</id>
	<title>Scripts/Docker Restore - Versionsgeschichte</title>
	<link rel="self" type="application/atom+xml" href="https://wiki.fam-puls.de/index.php?action=history&amp;feed=atom&amp;title=Scripts%2FDocker_Restore"/>
	<link rel="alternate" type="text/html" href="https://wiki.fam-puls.de/index.php?title=Scripts/Docker_Restore&amp;action=history"/>
	<updated>2026-07-18T06:06:06Z</updated>
	<subtitle>Versionsgeschichte dieser Seite in XccesS Wiki</subtitle>
	<generator>MediaWiki 1.42.1</generator>
	<entry>
		<id>https://wiki.fam-puls.de/index.php?title=Scripts/Docker_Restore&amp;diff=364&amp;oldid=prev</id>
		<title>Hendrik: Die Seite wurde neu angelegt: „&lt;syntaxhighlight lang=&quot;bash&quot; line=&quot;1&quot;&gt; #!/usr/bin/env bash # ========================================================================== #  restore_docker_rsync.sh #  • Spielt einen rsync-Snapshot zurück, der von backup_docker_rsync.sh #    erzeugt wurde. (Volumes + Docker-Config + Compose-Dateien) #  • Standard-Ziel: /             (also Original-Orte) #  • Standard-Snapshot: latest    (kann via -s &lt;timestamp&gt; gewählt werden) #  • Optionale --dry…“</title>
		<link rel="alternate" type="text/html" href="https://wiki.fam-puls.de/index.php?title=Scripts/Docker_Restore&amp;diff=364&amp;oldid=prev"/>
		<updated>2025-06-06T16:16:08Z</updated>

		<summary type="html">&lt;p&gt;Die Seite wurde neu angelegt: „&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt; #!/usr/bin/env bash # ========================================================================== #  restore_docker_rsync.sh #  • Spielt einen rsync-Snapshot zurück, der von backup_docker_rsync.sh #    erzeugt wurde. (Volumes + Docker-Config + Compose-Dateien) #  • Standard-Ziel: /             (also Original-Orte) #  • Standard-Snapshot: latest    (kann via -s &amp;lt;timestamp&amp;gt; gewählt werden) #  • Optionale --dry…“&lt;/p&gt;
&lt;p&gt;&lt;b&gt;Neue Seite&lt;/b&gt;&lt;/p&gt;&lt;div&gt;&amp;lt;syntaxhighlight lang=&amp;quot;bash&amp;quot; line=&amp;quot;1&amp;quot;&amp;gt;&lt;br /&gt;
#!/usr/bin/env bash&lt;br /&gt;
# ==========================================================================&lt;br /&gt;
#  restore_docker_rsync.sh&lt;br /&gt;
#  • Spielt einen rsync-Snapshot zurück, der von backup_docker_rsync.sh&lt;br /&gt;
#    erzeugt wurde. (Volumes + Docker-Config + Compose-Dateien)&lt;br /&gt;
#  • Standard-Ziel: /             (also Original-Orte)&lt;br /&gt;
#  • Standard-Snapshot: latest    (kann via -s &amp;lt;timestamp&amp;gt; gewählt werden)&lt;br /&gt;
#  • Optionale --dry-run          (nur anzeigen, nichts ändern)&lt;br /&gt;
# ==========================================================================&lt;br /&gt;
&lt;br /&gt;
set -euo pipefail&lt;br /&gt;
&lt;br /&gt;
# ---------- Variablen ----------------------------------------------------&lt;br /&gt;
BACKUP_ROOT=&amp;quot;/mnt/Backup/Docker&amp;quot;&lt;br /&gt;
SNAP=&amp;quot;latest&amp;quot;&lt;br /&gt;
DRYRUN=&amp;quot;&amp;quot;&lt;br /&gt;
&lt;br /&gt;
# ---------- Usage --------------------------------------------------------&lt;br /&gt;
usage() {&lt;br /&gt;
  cat &amp;lt;&amp;lt;EOF&lt;br /&gt;
Usage: $0 [-s SNAPSHOT] [--dry-run]&lt;br /&gt;
&lt;br /&gt;
  -s, --snapshot   Timestamp-Verzeichnis (z.B. 2025-06-06-1557) oder &amp;#039;latest&amp;#039;&lt;br /&gt;
  --dry-run        Keine Änderungen; zeige nur, was passieren würde&lt;br /&gt;
EOF&lt;br /&gt;
  exit 1&lt;br /&gt;
}&lt;br /&gt;
&lt;br /&gt;
# ---------- Argumente parsen --------------------------------------------&lt;br /&gt;
while [[ $# -gt 0 ]]; do&lt;br /&gt;
  case $1 in&lt;br /&gt;
    -s|--snapshot) SNAP=&amp;quot;$2&amp;quot;; shift 2 ;;&lt;br /&gt;
    --dry-run)     DRYRUN=&amp;quot;--dry-run&amp;quot;; shift ;;&lt;br /&gt;
    -h|--help)     usage ;;&lt;br /&gt;
    *) echo &amp;quot;Unbekannter Parameter $1&amp;quot;; usage ;;&lt;br /&gt;
  esac&lt;br /&gt;
done&lt;br /&gt;
&lt;br /&gt;
SNAPDIR=&amp;quot;$BACKUP_ROOT/$SNAP&amp;quot;&lt;br /&gt;
[[ -d &amp;quot;$SNAPDIR&amp;quot; ]] || { echo &amp;quot;Snapshot $SNAPDIR existiert nicht!&amp;quot; ; exit 1; }&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot; === Docker RESTORE === &amp;quot;&lt;br /&gt;
echo &amp;quot; Snapshot  : $SNAPDIR&amp;quot;&lt;br /&gt;
[[ -n $DRYRUN ]] &amp;amp;&amp;amp; echo &amp;quot; Modus     : DRY-RUN (keine Änderungen)&amp;quot;&lt;br /&gt;
read -rp &amp;quot;Fortfahren? [yes/no] &amp;quot; CONFIRM&lt;br /&gt;
[[ $CONFIRM == &amp;quot;yes&amp;quot; ]] || { echo &amp;quot;Abbruch.&amp;quot; ; exit 0; }&lt;br /&gt;
&lt;br /&gt;
# ---------- 1) Docker stoppen -------------------------------------------&lt;br /&gt;
echo &amp;quot;[*] Stoppe Docker-Dienst ...&amp;quot;&lt;br /&gt;
systemctl stop docker&lt;br /&gt;
&lt;br /&gt;
# ---------- 2) Volumes zurückspielen ------------------------------------&lt;br /&gt;
echo &amp;quot;[*] Stelle Volumes wieder her ...&amp;quot;&lt;br /&gt;
rsync -a $DRYRUN --delete \&lt;br /&gt;
      &amp;quot;$SNAPDIR/volumes/&amp;quot; /var/lib/docker/volumes/&lt;br /&gt;
&lt;br /&gt;
# ---------- 3) Docker-Config zurückspielen ------------------------------&lt;br /&gt;
echo &amp;quot;[*] Stelle Docker-Konfiguration wieder her ...&amp;quot;&lt;br /&gt;
rsync -a $DRYRUN --delete \&lt;br /&gt;
      &amp;quot;$SNAPDIR/etc-docker/&amp;quot; /etc/docker/&lt;br /&gt;
&lt;br /&gt;
if [[ -d &amp;quot;$SNAPDIR/docker-systemd&amp;quot; ]]; then&lt;br /&gt;
  rsync -a $DRYRUN --delete \&lt;br /&gt;
        &amp;quot;$SNAPDIR/docker-systemd/&amp;quot; /etc/systemd/system/docker.service.d/&lt;br /&gt;
fi&lt;br /&gt;
&lt;br /&gt;
# ---------- 4) Compose-Dateien zurückspielen ----------------------------&lt;br /&gt;
echo &amp;quot;[*] Stelle Compose-Dateien wieder her ...&amp;quot;&lt;br /&gt;
rsync -a $DRYRUN &amp;quot;$SNAPDIR/metadata/compose/&amp;quot; /&lt;br /&gt;
&lt;br /&gt;
# ---------- 5) Dienste starten ------------------------------------------&lt;br /&gt;
echo &amp;quot;[*] Starte Docker neu ...&amp;quot;&lt;br /&gt;
systemctl daemon-reload&lt;br /&gt;
systemctl start docker&lt;br /&gt;
&lt;br /&gt;
# ---------- 6) Stacks hochfahren ----------------------------------------&lt;br /&gt;
echo &amp;quot;[*] Starte alle Compose-Stacks ...&amp;quot;&lt;br /&gt;
find /data/compose -maxdepth 2 -name &amp;#039;docker-compose*.yml&amp;#039; -execdir docker compose up -d \;&lt;br /&gt;
&lt;br /&gt;
echo &amp;quot;=== Restore abgeschlossen ===&amp;quot;&lt;br /&gt;
&amp;lt;/syntaxhighlight&amp;gt;&lt;/div&gt;</summary>
		<author><name>Hendrik</name></author>
	</entry>
</feed>