Einen Befehl auf mehreren SSH-Servern ausführen
Von Lucas Russo, Entwickler von SSHive · Aktualisiert am
Eine Shell-Schleife, tmux, Ansible oder die Broadcast-Leiste von SSHive: was jedes davon gut kann, mit den genauen Befehlen, damit Sie für die Aufgabe das richtige wählen.
Freien Plattenplatz auf sechs Servern prüfen, denselben Dienst überall neu starten, herausfinden, welche OpenSSL-Version wo läuft: Solche Aufgaben kommen jede Woche, und vom Mac aus gibt es vier vernünftige Wege dafür. Drei brauchen nur Werkzeuge, die Sie vielleicht schon haben. Der vierte, die Broadcast-Leiste von SSHive, tippt in die Sitzungen, die Sie ohnehin offen haben. Jeder Schritt unten ist eine Methode, mit dem Befehl zum Kopieren und dem Punkt, an dem sie nicht mehr das richtige Werkzeug ist. Alle setzen eine Anmeldung per Schlüssel voraus, nicht per Passwort: Die Anleitung zu SSH-Schlüsseln richtet das ein.
Schritt für Schritt
Eine Shell-Schleife: skriptbar, ein Server nach dem anderen
Im Terminal:for h in web1 web2 web3; do echo "== $h"; ssh -o BatchMode=yes "$h" 'df -h /'; done. Die Namen dürfen Host-Aliasse aus~/.ssh/configsein.BatchMode=yeslässt ssh scheitern, statt an einer Passwortabfrage stehen zu bleiben, deshalb kommen die Schlüssel zuerst. Die Ausgabe kommt der Reihe nach, ein Host nach dem anderen, leicht in eine Datei zu schreiben oder mit der von letzter Woche zu vergleichen. Das passt für alles Nicht-Interaktive; auf eine Rückfrage antworten oder einen Editor bedienen kann die Schleife nicht, und bei vielen Hosts ist sie langsam, weil jeder auf den vorigen wartet.tmux: eine Tastatur, mehrere laufende Shells
Installieren Sie tmux (brew install tmux), öffnen Sie ein Fenster und teilen Sie es mitCtrl-b %(nebeneinander) oderCtrl-b "(übereinander) in einen Bereich pro Server, dann in jedem persshauf einen Server. Drücken SieCtrl-b :und tippen Siesetw synchronize-panes on: Alles, was Sie jetzt tippen, geht an jeden Bereich dieses Fensters, auch Antworten auf Rückfragen und Tasten in Vollbildprogrammen, und Sie sehen alle nebeneinander.setw synchronize-panes offgibt jedem Bereich seine eigene Tastatur zurück. Auf den Servern ist nichts zu installieren; das ist das Werkzeug für interaktive Arbeit auf einer Handvoll Rechnern.Ansible ad hoc: parallel, mit einem Bericht pro Host
ansible all -i 'web1,web2,web3,' -a 'df -h /'führt den Befehl auf den drei Hosts aus, standardmäßig fünf gleichzeitig (-fändert das), und gibt jedes Ergebnis unter dem Hostnamen mit seinem Status aus. Das Komma am Ende sagt Ansible, dass die Liste ein Inventar ist und kein Dateiname. Es braucht Ansible auf dem Mac und Python auf den Servern und ist das richtige Werkzeug, sobald aus einer Einmalaktion etwas wird, das Sie jede Woche ausführen: Dann gehört sie in ein Playbook.Die Broadcast-Leiste von SSHive: die Sitzungen, die ohnehin offen sind (Pro)
Verbinden Sie sich mit jedem Server; jeder wird ein SSH-Tab. Klicken Sie in der Symbolleiste des Terminals auf die Broadcast-Schaltfläche: Über dem Terminal öffnet sich eine orange Leiste BROADCAST mit einem Zähler, Sitzungen (N). Tippen Sie den Befehl in das eigene Feld der Leiste und drücken Sie die Eingabetaste oder klicken Sie auf Senden. SSHive tippt ihn in jede verbundene SSH-Sitzung, gefolgt von einem Zeilenumbruch, eine Meldung bestätigt, wie viele Sitzungen ihn erhalten haben, und die Ausgabe jedes Servers bleibt in seinem eigenen Tab. Eine Auswahl pro Sitzung oder gespeicherte Gruppen gibt es nicht: Um einen Server auszulassen, trennen Sie ihn vorher. Escape im Feld oder das × schließt die Leiste. Broadcast ist Pro und gibt es nur in der Mac-App; in der kostenlosen Version trägt die Schaltfläche ein PRO-Badge.
Häufige Fragen
Welche der vier Methoden soll ich nehmen?+
Kann ich nur an einen Teil der Sitzungen senden?+
Gibt es Broadcast in der App für iPhone und iPad?+
Passende SSHive-Funktionen
Broadcast-Modus
Befehle auf vielen Servern zugleich
SSH-Terminal
GPU-beschleunigtes Terminal
Schnellbefehle
Bibliothek wiederverwendbarer Befehle
SSHive kostenlos für macOS testen
Holen Sie sich den All-in-one-Client für SSH, SFTP, RDP und VNC auf dem Mac. Kostenloser Download, ohne Registrierung.
SSHive kostenlos laden