Mam plik, który chcę wysłać na wiele oddzielnych serwerów. Czy można wymienić wiele miejsc docelowych?
rsync foo.png server1:foo.png server2:foo.png
To daje mi „Nieoczekiwany zdalny argument: serwer1: foo.png
Nie, nie ma możliwości rsync
określenia wielu miejsc docelowych. Będziesz musiał wielokrotnie wywoływać polecenie. Jeśli masz wiele celów, możesz zamiast tego rozważyć użycie sieciowego systemu plików - może to być lepsze rozwiązanie dla twojego problemu.
Okazuje się, że istnieje program, który na to pozwala, ale nie oryginalny program rsync. To się nazywa pssh (chyba równoległe ssh)
Jedna z funkcji:
„- Równoległy rsync (parallel-rsync, upstream nazywa go prsync), skutecznie kopiuje pliki do wielu hostów równolegle”
- http://www.ubuntugeek.com/execute-commands-sultultally-on-multiple-servers-using- psshcluster-sshmultixterm.html
Chociaż wielokrotnie wywołujesz polecenie poprzez wprowadzanie pliku, możesz to zrobić, określając pożądane miejsca docelowe w jednym pożądanym pliku:
while read in; do rsync -av /Path/of/Source/Synced.file "$in":/Path/of/Destination/Synced.file; done < destinations.txt
Proszę wybaczyć mój test, ponieważ miałem w tym czasie tylko dwa systemy, ale jestem pewien, że to zadziała dla wielu systemów zgodnie z życzeniem. Nie jest to chyba najbardziej elegancka metoda, ale zdecydowanie jeden ze sposobów automatyzacji. I proszę, popraw mnie, jeśli to nie zadziała, ponieważ w tej chwili nie mam dostępnych zasobów do przetestowania poza dwoma systemami.