Rsync para vários diretórios com um comando?

7

Eu quero rsync meu diretório de trabalho para dois outros diretórios. Um destino seria para backup, outro para testá-lo. Eu tentei isso:

rsync -av --exclude='.git' source dest1,dest2

Mas então eu recebo o diretório error - 'dest1,dest2' não encontrado. Então, parece que ele vê isso como um caminho de diretório. É claro que eu executaria o comando duas vezes com um diretório de destino diferente, mas isso é um acréscimo, e eu gostaria de sempre rsync sem precisar usar vários comandos.

É possível fazer algo assim?

    
por Andrius 27.02.2014 / 08:06

2 respostas

3

Talvez use um loop for :

for dest in dest1 dest2; do 
    rsync -av --exclude='.git' source $dest
done
    
por 27.02.2014 / 08:10
2

A solução de loop for sugerida funciona, mas se você estiver transferindo uma grande quantidade de dados, ela será muito lenta. Isso ocorre porque serializa os trabalhos, que são limitados pela velocidade de gravação em disco. Uma alternativa melhor, mas um pouco mais complexa, é usar o GNU Parallel:

link

Você pode criar um comando para paralelizar várias execuções de rsync, o que seria N vezes mais rápido se você estivesse gravando em N discos ao mesmo tempo.

Uma solução paralela semelhante para um problema ligado à rede é dada aqui:

link

    
por 05.11.2014 / 19:24

Tags