SSH-Zugriff auf das Remote-Verzeichnis „dynamisch“

SSH-Zugriff auf das Remote-Verzeichnis „dynamisch“

Kurzfassung

Ich möchte ein Remote-Verzeichnis synchronisieren, dessen Name sich ändert. Etwas wie (funktioniert nicht!):

rsync -a '[email protected]:~/.zfs/snashots/$(ls -d Automatic-* | tail -1)/foo'  ~/foo

längere Version / Hintergrund

Ich habe eine über das Internet zugängliche Festplatte (Hetzner Aufbewahrungsbox), das regelmäßig ZFS-Snapshots erstellt. Auf die Snapshots kann ich innerhalb des /.zfs/snapshotsVerzeichnisses zugreifen. Für jeden Snapshot gibt es ein Unterverzeichnis, das nach einem Muster wie diesem benannt ist Automatic-<timestamp>:

$ ls /.zfs/snapshots
Automatic-2021-10-01T00-25-22   Automatic-2021-12-01T00-23-14   Automatic-2022-02-01T00-21-38

Jeder dieser Ordner enthält einen eingefrorenen Zustand meiner Dateien zum Zeitpunkt der Snapshot-Erstellung. Ich möchte den Inhalt des neuesten Ordners regelmäßig auf meinen Heimserver spiegeln, da dieser Ordner den neuesten „eingefrorenen“ Zustand meiner Dateien enthält. Da das Zeitstempelmuster sortierbar ist, könnte der neueste Ordner beispielsweise mit folgendem Befehl abgefragt werden:

$ ls -d Automatic-* | tail -1
Automatic-2022-04-01T00-24-16

Gibt es eine Möglichkeit, rsync mitzuteilen, wie es das „neueste“ Remote-Quellverzeichnis erhält?

Ich habe die Befehlsersetzung aus meinem obigen Beispiel nicht ausprobiert – aber ich denke, das würde mit rsync nicht funktionieren. Ich habe jedoch versucht, einen symbolischen Link ( ln -s '/path/to/$(ls -d Automatic-* | tail -1)/foo' /target) zu erstellen. Der lnBefehl löst den Pfad jedoch bei der Erstellung und nicht beim Zugriff auf.

Irgendeine Idee?

Antwort1

Ich habe eine mögliche Lösung für meine Bedürfnisse gefunden. Ich habe ein Skript geschrieben, das vor der Synchronisierung die gewünschten Ordner abfragt:

#!/bin/bash
LATEST_SNAPSHOT=$(ssh xxx.your-storagebox.de 'ls .zfs/snapshot/' | tail -1)
rsync -a "xxx.your-storagebox.de:.zfs/snapshot/${LATEST_SNAPSHOT}" /target

verwandte Informationen