Como impedir o Rsync de exibir arquivos transferidos?


72

Eu tenho uma configuração de conexão sshfs com um sistema de arquivos remoto em um servidor Linux. Estou fazendo um Rsync do meu servidor local para o sistema de arquivos ftpfs. Devido à natureza dessa configuração, não consigo chownnada no sistema de arquivos sshfs.

Quando eu faço o Rsync, ele tenta exibir todos os arquivos depois de transferi-los. Isso resulta em erros de chown, mesmo que transfira os arquivos corretamente.

Com o Rsync, existe uma maneira de dizer a ele para não tentar exibir os arquivos? Se eu sincronizar como 1000 arquivos, terminarei com um log de 1000 chown: permission denied (error 13)erros. Eu sei que não custa nada obter esses erros, pois a propriedade dos arquivos é determinada pela própria configuração do sshfs. Mas seria bom não pegá-los.

Respostas:


107

Você provavelmente está executando o rsync assim:

rsync -a dir/ remote:/dir/

A -aopção de acordo com a documentação é equivalente a:-rlptgoD

      -a, --archive    archive mode; equals -rlptgoD (no -H,-A,-X)

Você provavelmente deseja remover as opções -oe -g:

      -o, --owner                 preserve owner (super-user only)
      -g, --group                 preserve group

Então, em vez disso, seu comando rsync deve ser algo como isto:

rsync -rlptD dir/ remote:/dir/

Ou como @glglgl aponta:

rsync -a --no-o --no-g dir/ remote:/dir/

As demais opções em uso são:

      -r, --recursive             recurse into directories
      -l, --links                 copy symlinks as symlinks
      -p, --perms                 preserve permissions
      -t, --times                 preserve modification times
      -D                          same as --devices --specials
          --devices               preserve device files (super-user only)
          --specials              preserve special files

19
... ou apenas-a --no-o --no-g
glglgl

11
Eu usei just rsync -r --no-o --no-g /source/* /dest/e meu proprietário e grupo de arquivos no destino ainda foram alterados de acordo com a fonte. Alguma ideia?
Ram Patra


5

Não use a -aopção, pois ela incluirá a -popção que mantém as permissões. Para esta situação, o -rdeve ser suficiente.

Para mais informações, consulte man rsync.


4
Tem certeza de -pque é o que eu quero evitar? A propriedade é diferente das permissões, correto?
Jake Wilson

0

Eu encontrei algo semelhante pelo qual rsyncnão estava mantendo o proprietário e o grupo de arquivos e diretórios sincronizados a partir de um servidor remoto. Para corrigir, eu copiado ao longo dos /etc/shadow, /etc/groupe /etc/passwdarquivos.

Quando executei o rsynccomando abaixo, ele trabalhou, mantendo as permissões, links simbólicos e propriedade.

Eu configurei as teclas ssh para usar o ssh sem senha.

rsync -avpog user@10.1.x.x:/usr/local /usr
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.