Ich habe das folgende Skript, das SSH in einen Netzwerkserver und führt einige Befehle, aus irgendeinem Grund die SSH-Verbindung öffnet, aber bis die Befehle ausgeführt werden, schließt es (denke ich), als Folge die Befehle mit unten sind fehlgeschlagen Error? Kann jemand Informationen zur Verfügung stellen, wie man die SSH-Verbindung dauerhaft macht?
%Vor%Fehler:
%Vor% Jeder Befehl, den Sie mit exec_command
ausführen, hat einen eigenen Kanal und damit einen eigenen Kontext. Dieser Kontext enthält das Arbeitsverzeichnis. Sie ändern das Arbeitsverzeichnis in einem Kontext und versuchen dann, es in einem anderen Kontext zu verwenden. Verwenden Sie stattdessen den gleichen Kanal für alle Befehle. Sie können entweder einen Kanal öffnen und ihn verwenden oder einfach alle Befehle gleichzeitig ausgeben.
Hier sind ein paar andere Fragen, die das genauer erklären sollten.
Der Trick besteht darin, vor dem Ausführen des Befehls in das Verzeichnis zu wechseln. Sie können es leicht in Ihre execute_command
integrieren:
Der Befehl wird von einer Shell auf dem Remote-Rechner ausgeführt, sodass auch Shell-Tricks wie das Setzen von Umgebungsvariablen hinzugefügt werden können.
Mach einfach:
%Vor%was für mich funktioniert hat. (Sie haben vergessen, dass .send () Zeilen nicht automatisch hinzufügt)
Kann jemand Auskunft geben, wie man die SSH-Verbindung persistent macht?
Im Folgenden sehen Sie ein Beispiel dafür, wie Sie eine SSH-Verbindung persistent machen, indem Sie versuchen, einen Befehl auszuführen und dann auf die Verbindung zurückzugreifen und dann den Befehl auszuführen, wenn Fehler auftreten.
%Vor%