SSH-доступ к удаленному «динамическому» каталогу

SSH-доступ к удаленному «динамическому» каталогу

укороченная версия

Я хотел бы синхронизировать удаленный каталог, имя которого изменилось. Что-то вроде (не работает!):

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

более длинная версия / фон

У меня есть жесткий диск, доступный через Интернет (Ящик для хранения Hetzner), который регулярно создает снимки ZFS. Я могу получить доступ к снимкам в каталоге /.zfs/snapshots. Для каждого снимка есть подкаталог, названный по шаблону, например Automatic-<timestamp>:

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

Каждая из этих папок содержит замороженное состояние моих файлов на момент создания снимка. Я хотел бы регулярно зеркалировать содержимое последней папки на свой домашний сервер, поскольку эта папка содержит последнее «замороженное» состояние моих файлов. Поскольку шаблон временной метки можно сортировать, последнюю папку можно запросить, например, с помощью следующей команды:

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

Есть ли возможность указать rsync, как получить «последний» удаленный исходный каталог?

Я не пробовал подстановку команд из моего примера выше - но я думаю, что это не сработает с rsync. Однако я попытался создать символическую ссылку ( ln -s '/path/to/$(ls -d Automatic-* | tail -1)/foo' /target). Однако lnкоманда разрешает путь при создании, а не при доступе.

Есть идеи?

решение1

Я нашел одно возможное решение для своих нужд. Я написал скрипт, который запрашивает нужную папку перед синхронизацией:

#!/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

Связанный контент