Ich habe eine Datei, die ich an mehrere separate Server senden möchte. Ist es möglich, mehrere Ziele zu benennen?
rsync foo.png server1:foo.png server2:foo.png
Dies gibt mir ein "Unerwartetes Remote-Argument: server1: foo.png
Nein, es gibt keine Möglichkeit rsync
, mehrere Ziele anzugeben. Sie müssen den Befehl mehrmals aufrufen. Wenn Sie viele Ziele haben, sollten Sie stattdessen ein Netzwerk-Dateisystem verwenden - es passt möglicherweise besser zu Ihrem Problem.
Es stellt sich heraus, dass es ein Programm gibt, das dies zulässt, nur nicht das ursprüngliche rsync-Programm. Es heißt pssh (parallel ssh, nehme ich an)
Eine der Funktionen:
"- Parallel rsync (parallel-rsync, Upstream nennt es prsync) kopiert Dateien effizient parallel auf mehrere Hosts"
- http://www.ubuntugeek.com/execute-commands-simultaneous-on-multiple-servers-using- psshcluster-sshmultixterm.html
Obwohl Sie den Befehl mehrmals über die Dateieingabe aufrufen, können Sie dazu die gewünschten Ziele in einer gewünschten Datei angeben:
while read in; do rsync -av /Path/of/Source/Synced.file "$in":/Path/of/Destination/Synced.file; done < destinations.txt
Bitte entschuldigen Sie meinen Test, da ich zu diesem Zeitpunkt nur zwei Systeme zur Verfügung hatte, aber ich bin mir sehr sicher, dass dies bei Bedarf für mehrere Systeme funktioniert. Es ist wohl nicht die eleganteste Methode, aber es ist definitiv eine Möglichkeit zur Automatisierung. Und bitte zögern Sie nicht, mich zu korrigieren, wenn dies nicht funktioniert, da mir zum Zeitpunkt der Veröffentlichung nicht die Ressourcen zur Verfügung stehen, um über zwei Systeme hinaus zu testen.