Talvez use um loop for
:
for dest in dest1 dest2; do
rsync -av --exclude='.git' source $dest
done
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?
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:
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: