J'ai un fichier que je veux envoyer à plusieurs serveurs distincts. Est-il possible de nommer plusieurs destinations?
rsync foo.png server1:foo.png server2:foo.png
Cela me donne un "argument distant inattendu: server1: foo.png
Non, il n'y a aucun moyen rsync
de spécifier plusieurs destinations. Vous devrez invoquer la commande plusieurs fois. Si vous avez de nombreuses cibles, vous voudrez peut-être envisager d'utiliser un système de fichiers réseau à la place - il pourrait être mieux adapté à votre problème.
Il s'avère qu'il existe un programme qui permet cela, mais pas le programme rsync d'origine. Ça s'appelle pssh (parallèle ssh je suppose)
Une des fonctionnalités:
"- Parallel rsync (parallel-rsync, en amont l'appelle prsync), copie efficacement les fichiers sur plusieurs hôtes en parallèle"
- http://www.ubuntugeek.com/execute-commands-simultanément-on-multiple-servers-using- psshcluster-sshmultixterm.html
Bien que vous appeliez la commande plusieurs fois via l'entrée de fichier, cela peut être fait en spécifiant les destinations souhaitées dans un fichier souhaité:
while read in; do rsync -av /Path/of/Source/Synced.file "$in":/Path/of/Destination/Synced.file; done < destinations.txt
Veuillez excuser mon test car je n'avais que deux systèmes disponibles à l'époque, mais je suis certain que cela fonctionnera pour plusieurs systèmes comme vous le souhaitez. Ce n'est pas la méthode la plus élégante, je suppose, mais c'est certainement une façon d'automatiser. Et s'il vous plaît, n'hésitez pas à me corriger si cela ne fonctionne pas car je n'ai pas les ressources disponibles pour tester au-delà de deux systèmes à ce moment de la publication.