rsync e --fake-super - como preservar atributos?

3

Estou tentando classificar meus backups para que, quando os arquivos forem restaurados, os proprietários / grupos e quaisquer outros metadados sejam restaurados corretamente. Para meu teste, fiz um backup de um servidor Ubuntu 9.10 (com o rsync versão 3.0.6, versão de protocolo 30 instalada) via ssh, para um laptop OSX 10.6 ou um servidor Ubuntu 9.10.

Fazer o backup foi feito usando o seguinte comando (executado como root):

# rsync -avz --fake-super /var/www/myfolder [email protected]:/home/backups

Nenhum erro é relatado ao fazer isso.

Eu então uso o seguinte para recuperar meu diretório de teste:

# rsync -avz --fake-super [email protected]:/home/backups/myfolder /tmp

E para cada arquivo, ele informa o erro:

rsync: failed to write xattr user.rsync.%stat for "/tmp/myfolder/path/to/file": Operation not supported (95)

Originalmente eu pensei que isso deve ser porque eu estava fazendo o backup para o OSX, então eu tentei novamente fazer o backup para um servidor Ubuntu - apenas para obter o mesmo erro ao restaurar arquivos. Eu pesquisei e procurei no manpage pelo rsync, mas não encontrei ajuda.

Meu servidor Ubuntu local usa ext3, o servidor remoto Ubuntu ext4, e o Mac tem HFS

    
por PeterB 06.03.2010 / 14:23

1 resposta

12

Você está fazendo pelo menos uma coisa errada.

Primeiro, você está usando --fake-super no lado errado da conexão. Deixe-me citar a página man do rsync.

The --fake-super option only affects the side where the option is used. To affect the remote side of a remote-shell connection, specify an rsync path:

rsync -av --rsync-path="rsync --fake-super" /src/ host:/dest/

O que você está fazendo é executar --fake-super no lado da conexão onde você já está root de qualquer maneira.

A parte sobre "falha ao gravar xattr user.rsync.% stat for" é porque o sistema de arquivos usado com --fake-super não foi montado com o sinalizador user_xattr. Esta opção de montagem tem que estar em vigor no lado da conexão onde você está usando --fake-super, que em sua causa seria "remoteserver.com".

Para resumir, estes são os comandos que você deveria estar executando:

# rsync -avz --rsync-path="rsync --fake-super" /var/www/myfolder [email protected]:/home/backups
# rsync -avz --rsync-path="rsync --fake-super" [email protected]:/home/backups/myfolder /tmp

... com a opção de montagem user_xattr em vigor no remoteserver.com

    
por 06.03.2010 / 14:51