Acesso SSH ao diretório 'dinâmico' remoto

Acesso SSH ao diretório 'dinâmico' remoto

versão curta

Gostaria de sincronizar um diretório remoto, cujo nome muda. Algo como (não está funcionando!):

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

versão mais longa/fundo

Eu tenho um disco rígido acessível pela Internet (Caixa de armazenamento Hetzner), que cria regularmente instantâneos do ZFS. Posso acessar os instantâneos dentro do /.zfs/snapshotsdiretório. Para cada snapshot existe um subdiretório com o nome de um padrão como Automatic-<timestamp>:

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

Cada uma dessas pastas contém um estado congelado dos meus arquivos no momento da criação do instantâneo. Gostaria de espelhar regularmente o conteúdo da pasta mais recente no meu servidor doméstico, porque esta pasta contém o estado 'congelado' mais recente dos meus arquivos. Como o padrão de carimbo de data/hora é classificável, a pasta mais recente pode, por exemplo, ser consultada pelo seguinte comando:

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

Existe alguma possibilidade de dizer ao rsync como obter o diretório de origem remota 'mais recente'?

Não tentei a substituição do comando do meu exemplo acima - mas acho que não funcionaria com o rsync. Porém tentei criar um link simbólico ( ln -s '/path/to/$(ls -d Automatic-* | tail -1)/foo' /target). Porém o lncomando resolve o caminho na criação e não no acesso.

Qualquer ideia?

Responder1

Encontrei uma solução possível para minhas necessidades. Eu escrevi um script que consulta a pasta necessária antes da sincronização:

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

informação relacionada