RSYNC exclui o diretório do caminho de destino

1

Desejo excluir pastas que já estão em um servidor remoto (ou seja, test/xyz ) e desejo executar rsync do meu servidor de origem, onde tenho test1/xyz pasta, portanto, não quero substituir xyz pasta no lado remoto.

Também quero atualizar os arquivos se houver arquivos excluídos / adicionados no servidor de origem que serão excluídos / adicionados no servidor remoto, mas excluindo a pasta test/xyz .

Eu tentei abaixo o comando para excluir o diretório remoto, mas copiou o diretório e os arquivos excluídos no diretório remoto.

rsync -ave ssh --exclude=remotedirectory root@IPADDRESS:remotepath --delete sourcepath

Alguma idéia, por favor?

    
por Kaushal 03.10.2018 / 13:11

2 respostas

1

Você tem duas maneiras.

  1. Apenas --exclude=dir e não há diferença se for local ou remoto, pois, de qualquer forma, você não deseja sincronizá-lo.
  2. Use --rsync-path='rsync --exclude=dir' e o rsync remoto será executado com essa opção de exclusão.
por 03.10.2018 / 13:19
0

Isso deve funcionar:

rsync -av --delete --exclude=/xyz/ sourcepath/ root@IPADDRESS:remotepath/

Isso excluirá "xyz" quando ocorrer na raiz de "sourcepath", e é um diretório (o "/" final garante isso).

As barras finais nos diretórios de origem e de destino são importantes. Sem isso, a execução do second rsync criaria uma nova pasta "remotepath / sourcepath", que provavelmente não é o que você deseja.

Além disso, você tinha os parâmetros de origem e destino no caminho errado, de acordo com sua descrição (mas a confusão poderia ser minha).

    
por 03.10.2018 / 17:43