rsync mantém a estrutura da pasta dado ponto

2

Estou tentando desenvolver um atualizador de arquivos para o meu servidor remoto. Portanto, cada vez que eu modifico alguns arquivos de código na minha estação de trabalho, eu executaria rsync e modificaria os arquivos de código no servidor remoto.

Então imagine se eu modificar o arquivo /home/myuser/workspaces/project/folder/file.txt eu gostaria de sincronizá-lo com [email protected]:/work/folder/file.txt . Como você pode ver, o servidor mantém a estrutura de pastas, embora pule a parte irrelevante /home/myuser/workspaces/project/

Se eu executar o rsync a partir de /home/myuser/workspaces/project/ , é fácil resolvê-lo, pois basta adicionar a opção -R :

$ cd /home/myuser/workspaces/project/
$ rsync -aR folder/file.txt [email protected]:/work

Isso faria o truque. O problema é que eu não sei de onde o comando será executado, então eu tenho que adicionar o caminho inteiro /home/.../file.txt , e usar o comando mostrado salvaria tudo em: [email protected]:/work/home/myuser/workspaces/project/folder/file.txt .

Existe alguma solução para o que eu quero implementar?

A propósito, no momento do rsync , pode ser possível que /work/ , no host remoto, seja uma pasta vazia.

Obrigado!

    
por deuseux12 14.03.2017 / 16:06

1 resposta

3

Apenas para o futuro, encontrei a solução mais rápida que envolve o parâmetro -R e adicionando um /./ antes da pasta da qual você deseja começar a criar.

Por exemplo:

 $ rsync -aR /home/myuser/workspaces/project/./folder/file.txt [email protected]:/work

criará a pasta /work/folder/file.txt no servidor remoto.

Basta deixar esta resposta para uso futuro e para outras pessoas, já que foi muito difícil encontrá-la em outros sites.

    
por 14.03.2017 / 16:28

Tags