Quando o -av NÃO é a opção apropriada para o rsync?

1

De alguma forma, nunca consigo aprender o uso de rsync - sempre que preciso fazer alguma cópia / sincronização, penso nisso e, em seguida, decido nah, só usarei scp .

O que provavelmente não é uma boa ideia, em particular rsync é claramente superior para atualizar um backup. Se eu soubesse como usá-lo ... sempre que eu determinei que eu deveria usar rsync para um trabalho de sincronização em particular, eu li muitos conselhos sobre o homem / internet, fiquei completamente confuso com a pleathora de opções, experimente vários deles antes de obter o resultado que quero e rapidamente esqueço como fiz isso de novo.

Então, para usar a rsync , estou procurando regras simples. Em particular, parece que o uso “padrão” geralmente parece envolver a bandeira -a , que o manual diz que significa “arquivar” e lista algumas coisas que ele faz, mas me deixa confuso sobre o porquê eu realmente os quero e em particular se eu puder ter razão não para querer alguns deles.

Assim, minha pergunta: se eu tenho o hábito de copiar arquivos por padrão com rsync -av , que situações eu devo procurar quando esta não é uma boa ideia?

    
por leftaroundabout 12.05.2018 / 17:13

1 resposta

1

Quando você não usa rsync -av ?

tl; dr : quando você não quiser o comportamento fornecido por -a ou por -v , não use essas opções!

Além disso, Gordon Davisson aponta outra exceção:

if you aren't running it as root (on the destination system), or the user and group IDs don't match between source or target systems, you may not want to (/be able to) preserve users, groups, and device and special files.

E o xenoid enfatiza a adição ao -av :

There are also case where you can add to -av, -av --delete will replace the additive backup by a mirroring (use with care (ie, try first with -n|--dry-run) otherwise you backup can be deleted if you match the wrong directories.

-v (aumenta a verbosidade)

Fácil primeiro: -v . A partir do manual do rsync :

 -v, --verbose               increase verbosity

Este é bastante simples de ver o efeito de. Se você não estiver preocupado com as informações de transferência, omita-as.

-a (modo de arquivo)

Direito, modo archive . Para isso, vale a pena ler O que é o modo de arquivo no rsync? sobre a falha do servidor.

A boa resposta de Andrew lista os modos que inclui:

-r, --recursive recurse into directories

-l, --links copy symlinks as symlinks

-p, --perms preserve permissions

-t, --times preserve modification times

-g, --group preserve group

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

-D same as --devices --specials

--devices preserve device files (super-user only)

--specials preserve special files

e exclui :

-H, --hard-links preserve hard links

-A, --acls preserve ACLs (implies -p)

-X, --xattrs preserve extended attributes

Como ele observa, é perfeito para backups ; porque se você estiver fazendo o backup, você quer fazer uma cópia exata dos dados que está fazendo o backup, junto com informações sobre os arquivos.

Por que você não quer usar -a , então?

De um modo geral, se você estiver em uma situação em que não deseja -a , você saberá. Talvez:

  • você deseja copiar arquivos de um diretório, mas não seus subdiretórios (portanto, não -r )
  • você deseja copiar links simbólicos são arquivos reais =, porque seu sistema de arquivos de destino não suporta links simbólicos (sem -l )
  • você não está preocupado com permissões (não -p )
  • você deseja atualizar os horários de modificação (sem -t )

O último é provavelmente o caso de uso mais óbvio.

    
por 12.05.2018 / 17:37