SSH zwischen N Anzahl Servern

410
Niket Sharma

Ich habe n Anzahl von Servern wie c0001.test.cloud.com, c0002.test.cloud.com, c0003.test.cloud.comund ich möchte, wie die ssh zwischen diesen Servern tun: von Server: C0001 die ssh C0002 tun und dann den Server verlassen. Kehren Sie zu c0001 zurück, führen Sie die ssh zu c0003 aus und beenden Sie den Server.

Auf diese Weise wird das Skript so ausgeführt, dass zur Laufzeit keine Eingaben erfolgen, und es können n Server vorhanden sein. Ich habe ein Skript geschrieben:

str1=c0001.test.cloud.com,c0002.test.cloud.com,c0003.test.cloud.com string="$( cut -d ',' -f 2- <<< "$str1" )" echo "$string" for j in $(echo $string | sed "s/,/ /g") do ssh appAccount@j done 

Aber dieses Skript läuft nicht gut. Ich habe überprüft es auch durch Übergabe von Parametern wie: -o StrictHostKeyChecking=nound <<'ENDSSH'aber es funktioniert nicht. Wie können wir ssh zwischen mehreren Servern mithilfe von Skripts erreichen?

0
Warum tust du das? Was ist das Ziel? Christopher Hostage vor 6 Jahren 0
Nach dem ssh muss ich die Daten von c001 auf verschiedene Server verschieben. Niket Sharma vor 6 Jahren 0
Da Sie versuchen, Dateien zu pushen, empfehle ich die Verwendung eines Dateiübertragungsprotokolls anstelle von sftp oder rsync. Diese sind auch unkompliziert zu automatisieren. Sie könnten von den Clients ziehen, anstatt vom Ursprung aus zu drücken. Christopher Hostage vor 6 Jahren 0
Früher haben wir dies manuell wie folgt getan: ssh appAccount @ serverName. Danach werden Sie gefragt: Sind Sie sicher, dass Sie die Verbindung fortsetzen möchten (Ja / Nein)? Durch die Eingabe von yes können wir das erreichen und dieser Vorgang wird für jeden Server wiederholt. Aber ich möchte diesen Prozess automatisieren. Niket Sharma vor 6 Jahren 0
Warum haben Sie [diese Frage] (https://superuser.com/q/1341903/432690) noch einmal gepostet? Bist du der gleiche Autor? Kamil Maciorowski vor 6 Jahren 0
Zu dieser Frage konnte ich keine Kommentare hinzufügen. Niket Sharma vor 6 Jahren 0
Bitte sehen Sie Folgendes: [* Ich habe aus Versehen zwei Konten erstellt. Wie füge ich sie zusammen? *] (https://superuser.com/help/merging-accounts) Da die andere Frage als verworfen und als Duplikat markiert ist, können Sie so tun, als ob sie nicht Ihre ist und nicht versuchen, die Konten zusammenzuführen. :) Kamil Maciorowski vor 6 Jahren 0

1 Antwort auf die Frage

0
Scott
  1. Sie sagen, verwenden Sie als Shell-Variable. Das bedeutet aber, dass Sie diese Variable als referenzieren müssen, z .for j in …(values)… do ssh appAccount@j donej$jssh "appAccount@$j"
  2. Sie benötigen ein Semikolon ( ;) oder eine neue Zeile zwischen ssh "appAccount@$j"und done.

Es gibt andere Probleme - z. B. sollten alle Shell-Variablenverweise in Anführungszeichen gesetzt werden, aber die obigen Ausführungen sollten Sie erst einmal anfangen.

Hallo Scott, nach dem Hinzufügen des; Sie fragen erneut nach Sind Sie sicher, dass Sie die Verbindung fortsetzen möchten (Ja / Nein)? Früher haben wir dies manuell wie folgt getan: ssh appAccount @ serverName. Danach werden Sie gefragt: Sind Sie sicher, dass Sie die Verbindung fortsetzen möchten (Ja / Nein)? Durch die Eingabe von yes können wir das erreichen und dieser Vorgang wird für jeden Server wiederholt. Aber ich möchte diesen Prozess automatisieren, also möchte ich das Skript schreiben und diese in-Schleife ausführen, so dass es zwischen allen in der Liste vorhandenen Maschinen ausgeführt wird. Niket Sharma vor 6 Jahren 0