Czy możesz scp
plik do wielu lokalizacji w tym samym poleceniu?
Na przykład:
scp file.txt [email protected]:, [email protected]:
Czy może bardziej praktyczne byłoby stworzenie skryptu bash, w którym są już wszystkie hosty, a argumentem byłby tylko plik?
linux
file-transfer
scp
Andrzej
źródło
źródło
for
nawhile read dest; do
, odczytany zostanie ze standardowego wejścia. Umieść go w skrypcie i nakarmdestfile.txt
go (np./thescript.sh <destfile.txt
.).Wygląda jak zadanie dla równoległego scp (n) (t) - to implementuje zestaw poleceń, które pozwalają na uruchamianie poleceń scp na wielu systemach jednocześnie. Pozwoli to na kopiowanie plików równolegle do zestawu maszyn.
źródło
źródło
Inną alternatywą (i linią pojedynczą) byłoby użycie pdsh do połączenia z każdym węzłem docelowym i wywołania stamtąd:
Wymaga to oczywiście jeszcze jednej informacji (hosta lokalnego) i różnych praw użytkownika, ale unika się zapętlania basha i używania pośredniego odczytu pliku.
źródło
Oto kolejna opcja, z jednym wierszem skryptu powłoki.
Używa dwóch plików, jednego dla pętli i jednego dla listy hostów serwera. Odczytuje
$1
pierwszy parametr z CLI jako nazwę pliku do SCPcscp.sh
hosts.txt
Stosowanie
Skopiuj plik do wielu hostów:
źródło
Jeśli masz spójną konwencję nazewnictwa dla wielu serwerów, możesz zrobić coś porządnego:
źródło