Eu tenho um arquivo que quero enviar para vários servidores separados. É possível nomear vários destinos?
rsync foo.png server1:foo.png server2:foo.png
Isso me dá um "argumento remoto inesperado: server1: foo.png
Não, não há como rsync
especificar vários destinos. Você precisará chamar o comando várias vezes. Se você tiver muitos destinos, considere usar um sistema de arquivos de rede - pode ser um ajuste melhor para o seu problema.
Acontece que existe um programa que permite isso, mas não o programa rsync original. É chamado pssh (ssh paralelo, suponho)
Um dos recursos:
"- O rsync paralelo (parallel-rsync, a montante chama de prsync), copia eficientemente arquivos para vários hosts em paralelo"
- http://www.ubuntugeek.com/execute-commands-simultously-on-multiple-servers-using- psshcluster-sshmultixterm.html
Embora você esteja chamando o comando várias vezes através da entrada do arquivo, isso pode ser feito especificando os destinos desejados em um arquivo desejado:
while read in; do rsync -av /Path/of/Source/Synced.file "$in":/Path/of/Destination/Synced.file; done < destinations.txt
Por favor, desculpe meu teste, pois eu só tinha dois sistemas disponíveis no momento, mas estou certo de que isso funcionará para vários sistemas, conforme desejado. Não é o método mais elegante, suponho, mas é definitivamente uma maneira de automatizar. E, por favor, sinta-se à vontade para me corrigir se isso não funcionar, pois não tenho os recursos disponíveis para testar além de dois sistemas no momento da publicação.