Como especifico uma grande lista de arquivos que preciso sincronizar com o rsync?

Como especifico uma grande lista de arquivos que preciso sincronizar com o rsync?

Eu tenho uma lista de arquivos e destinos que preciso sincronizar com o rsync, mas não quero executar o rsync várias vezes para isso (o tempo de conexão é grande devido ao uso do ssh no meu caso).

Exemplo:

   ~/aaa    remote:/~/aaa
   ~/bbb    remote:/~/otherplace/bbb

Como você pode imaginar a lista é maior e no meu caso tenho que rodar o mesmo conjunto com vários servidores remotos.

Como posso implementar isso facilmente? Quero que o rsync inicie uma vez por servidor.

Responder1

Eu fiz uma solução rápida para isso uma vez, quando quis colocar esse comportamento em um script rsync existente que só foi transferido para uma pasta específica: criei um catálogo de links simbólicos para essa finalidade em ambos os lados e disse ao rsync para desreferenciar links ( -L) durante a transferência . Da minha parte, os links foram desreferenciados em seu conteúdo e transferidos para o diretório do lado remoto, onde foram colocados nos links simbólicos que apontavam para os diretórios onde eu os queria.

Na verdade, esta não é a pior maneira de especificar arquivos para backup. É versátil e facilmente personalizável sem alterar os arquivos de configuração (bem, a estrutura dos links simbólicoséo arquivo de configuração, de certa forma).

Este exemplo específico não é uma boa solução se você quisernãolinks de desreferência para transferência em certos casos, no entanto.

Responder2

Se o problema for ssh, talvez você possa acelerar as coisas reutilizando a conexão ssh, coloque isso em ~/.ssh/config ou algum outro arquivo de configuração ssh relevante:

Host *
  ControlMaster auto
  ControlPath /tmp/%r@%h:%p

informação relacionada