É seguro rsync a mesma fonte para o mesmo destino em paralelo

3

Meu aplicativo usa o rsync para copiar arquivos do driver de rede para local como cache para melhorar o desempenho.

Mas como meu aplicativo pode ser executado em paralelo, assim como o rsync, e pode haver um caso em que 2 instâncias de rsync sejam executadas em paralelo com a mesma origem e diretório.

Eu me deparei com um problema que o destino não sincroniza completamente (deixando um sub-diretório vazio). então duvido que seja um problema de um rsync, então

  • O rsync é seguro para copiar arquivos da mesma origem para o mesmo destino em paralelo?
  • Existe alguma opção disponível para garantir a exatidão de tal operação.

As opções que estou usando são:

rsync -a --copy-unsafe-links --delete
    
por lzprgmr 10.09.2013 / 13:15

1 resposta

2

Provavelmente, é seguro executar o rsyn em paralelo, mas não é eficiente, já que o mais provável é que os arquivos sejam transferidos duas vezes, já que o rsync compõe a lista de arquivos a serem transferidos no começo. É claro que há sempre a pequena chance de que o mesmo arquivo seja transferido simultaneamente por ambos os rsyncs, mas o conteúdo deve ser o mesmo depois.

Para evitar execuções duplas, geralmente escrevo um script que verifica e, de outra forma, touch es um arquivo de bloqueio que é removido no final. Como uma opção, você pode usar uma armadilha em seu script para limpar o arquivo de travamento se você interromper o script ou quando ocorrer um erro (use 'help trap' dentro do seu shell). Tanto quanto eu sei, não há tal mecanismo de bloqueio no próprio rsync (o que seria difícil de implementar anwyay).

    
por 10.09.2013 / 17:09