Como posso rsync para todos os hosts conectados remotamente?

2

Estou usando o seguinte comando para transferir o arquivo usando rsync para apenas um host conectado:

rsync -az -e ssh /path/to/source 192.168.8.8:/path/to/destination

Este é o caso de addesss ip estáticos. Mas em outros casos, há mais de um sistema conectado usando o DHCP.

Eu tentei:

rsync -az -e ssh /path/to/source 192.168.8.*:/path/to/destination

Mas mostra um erro

ssh: could not resolve the hostname 192.168.8.*: Name or service not known
    
por d a i s y 08.03.2018 / 07:36

2 respostas

1

Os curingas e a regex simples (por exemplo, ls /usr/bin/x[bc]* ) funcionam apenas no sistema de arquivos local.

Os curingas não podem saber para qual host remoto você deseja copiar as pastas. Você precisa de um loop para isso:

for i in $(seq 8 18); do; \
   rsync -az -e ssh /path/to/source 192.168.8.$i:/path/to/destination; \
done

Isso copiará o source para todos os hosts de 192.168.8.8 a 192.168.8.18.

    
por Simon Sudler 08.03.2018 / 09:40
0

rsync só pode copiar para um destino de cada vez, como ssh só pode se conectar a um destino por chamada.

No entanto, convém dar uma olhada no pacote pssh (para SSH Paralelo), que também fornece rsync paralelo:

- Parallel rsync (parallel-rsync, upstream calls it prsync), efficiently
  copies files to multiple hosts in parallel
    
por Saïmonn 08.03.2018 / 10:49