Como manter um diretório clonado remoto com rsync?

Como manter um diretório clonado remoto com rsync?

Tenho acesso SSH (usando um par de chaves SSH) a uma máquina remota. Quero manter um diretório na máquina remota exatamente igual a um determinado diretório local (sincronização unilateral). A verificação da igualdade do arquivo deve ser feita com base em um hash do conteúdo do arquivo binário (não no tamanho/data).

  1. Qual é o comando rsync correto para fazer isso (não o serviço rsync)?
  2. Como as permissões de arquivo são tratadas?
  3. Como são tratadas as datas de modificação de arquivos?
  4. Como o rsync reage às falhas e qual é o código de saída?

Responder1

O Rsync verifica o conteúdo do arquivo, não a data e/ou tamanho do arquivo. Se o conteúdo for diferente, mas tiver o mesmo caminho e nome, o arquivo será sobrescrito.

A sintaxe para rsync é rsync options source destinationassim, se você deseja manter um diretório remoto sincronizado com um local, isso deve resolver:

rsync -azh local_folder user@remote_server:/path/to/destination/

Se você quiser usar SSH como protocolo de transferência, isso funciona para mim:

rsync -azhe ssh local_folder user@remote_server:/path/to/destination

Como as permissões de arquivo são tratadas? Como são tratadas as datas de modificação de arquivos?

O aparâmetro preserva links simbólicos, permissões de arquivo, carimbos de data e hora... se você não quiser transferir essas informações apenas exclua-as do comando, elas serão de propriedade do usuário com quem você efetuou login na sessão SSH.

Como o rsync reage às falhas e qual é o código de saída?

A maioria dos comandos/programas retorna 0 em caso de sucesso e qualquer outro número em caso de erro.Aqui está uma lista de códigos de saída rsyncpara referência

informação relacionada