Combinando rsync e encontre

0

Estou tentando usar o recurso Localizar & rsync para fazer backup de arquivos específicos de uma máquina remota e não chegar a lugar nenhum.

Aqui está a configuração: Eu quero usar o rsync para fazer backup de todos os arquivos que contêm *state* ou *srm na máquina remota em um diretório local. Eu especificamente quero executar isso a partir da minha máquina local, ao invés de executá-lo com o achado na máquina remota (um RetroPie, se você estiver curioso), porque eu não quero configurar as credenciais de login da máquina remota. Eu já tenho chaves ssh configuradas corretamente. Eu estou com o objetivo de fazer backup em ~ / retropie-backup localmente.

O comando de localização que estou usando funciona corretamente na máquina remota (truncado para um resultado para maior clareza):

$ find  -iname "*state*" -o -iname "*srm"
./RetroPie/roms/snes/EarthBound (USA).srm

Até aí tudo bem. Eu também sei que preciso adicionar -s ao rsync para que ele não entre em pânico nos espaços nos nomes dos arquivos. Minha tentativa de combinar os dois, no entanto, não funciona:

$ rsync -v -s pi@retropie:''find  -iname "*state*" -o -iname "*srm"'' retropie-backup/
rsync: link_stat "/home/pi/'find  -iname "*state*" -o -iname "*srm"'" failed: No such file or directory (2)

Eu posso dizer que estou perdendo algo básico, mas simplesmente não estou vendo. Alguma sugestão?

    
por Decoherent 28.12.2016 / 03:21

1 resposta

0

O find precisa ser executado na máquina remota, que parece com o que você está tentando fazer, exceto que sua sintaxe não está correta. Backticks só podem executar comandos na máquina local. Você deve ssh na máquina remota para executar find .

ssh pi@retropie find ... >./filelist
rsync -v -files-from ./filelist pi@retropie: retropie-backup/
    
por 28.12.2016 / 03:38

Tags