GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie kann ich eine dauerhafte SSH-Verbindung erstellen, um Befehle über einen bestimmten Zeitraum zu streamen?

Automatische Persistenz mit OpenSSH

Sie können auch den ControlMaster verwenden Feature von OpenSSH, das einen Unix-Domain-Socket für die erste Verbindung öffnet und diese Verbindung in allen nachfolgenden Aufrufen wiederverwendet.

Um die Funktion zu aktivieren, können Sie entweder -M verwenden als Befehlszeilenschalter oder aktivieren Sie ControlMaster Option in Ihrem ~/.ssh/ssh_config , z. B.:

ControlMaster auto

Zusätzlich sollten Sie den ControlPath setzen Verwenden Sie die folgenden Zeilen in Ihrem ~/.ssh/ssh_config :

Host *
   ControlPath ~/.ssh/master-%[email protected]%h:%p

Um eine dauerhafte Verbindung zu einem Host aufrechtzuerhalten, z. Wenn Sie ein Skript ausführen möchten, das viele SSH-Verbindungen zum Host herstellen muss, von denen keine über die gesamte Lebensdauer des Skripts bestehen bleibt, können Sie im Voraus eine stille Verbindung starten mit:

ssh -MNf remotehost

Tschüss, nesono


Nicht sicher, ob es in der Produktion verwendet werden kann, aber Sie können so etwas tun:

Datei auf #1 erstellen

1> touch /tmp/commands

Führen Sie dann den Befehl aus:

1> tail -f /tmp/commands | ssh [email protected]

Dadurch wird die Datei /tmp/commands geöffnet und ihr Inhalt an den Server x.x.x.x (#2) gesendet und dort Zeile für Zeile ausgeführt

Nun, jedes Mal, wenn etwas auf #1 passiert:

1> echo "ls -l" >> /tmp/commands

oder

1> echo "reboot" >> /tmp/commands

Was auch immer Sie zur Datei /tmp/commands hinzufügen, wird an #2 gesendet und ausgeführt. Stellen Sie nur sicher, dass Sie nichts Interaktives ausführen oder irgendwie damit umgehen.


In /etc/ssh/ssh_config hinzufügen

# Send keep alive signal to remote sshd
ServerAliveInterval 60

Linux
  1. So erstellen und starten Sie LXC-Linux-Container mit LXC-Befehlen

  2. So deaktivieren Sie das automatische Löschen der Dateien in den Verzeichnissen /tmp und /var/tmp in CentOS / RHEL 5,6

  3. Wie kann man SSH-Benutzer nach der Anmeldung auf einen vordefinierten Satz von Befehlen beschränken?

  4. Wie kann ich Alias-Befehle mit xargs verwenden?

  5. Wie kann ich die Dokumentation zu integrierten zsh-Befehlen lesen?

So führen Sie Linux-Befehle auf einem Remote-System über SSH aus

Wie behandelt Linux mehrere aufeinanderfolgende Pfadtrennzeichen (/home////username///file)?

So erstellen Sie Aliasse zum Anpassen von Befehlen in Debian

Timen Sie die Ausführungszeit mehrerer Befehle

Wie kann ich Linux-Befehle aufzeichnen?

Android - Wie kann ich Shell-Befehle verwenden und mit dem darunter liegenden Linux-System interagieren?